This commit is contained in:
Tourswen
2026-01-23 01:59:09 +08:00
parent 6c08ea4598
commit 3c9ddc4c60
31 changed files with 633 additions and 841 deletions

Binary file not shown.

View File

@@ -77,7 +77,7 @@
<AbilityDef>
<defName>ARA_Myrmecocystus_Production_Medicine</defName>
<label>蜜罐种转换——医药专精</label>
<description>使蜜罐种发生内驱性进化,以牺牲生产阿拉克涅虫蜜的代价,使其可以孵化医药茧,并允许使用医疗能力和操纵拟线种。\n\n该进化过程不可逆!</description>
<description>使蜜罐种发生内驱性进化,以牺牲生产阿拉克涅虫蜜的代价,使其可以孵化医药茧,并允许使用医疗能力和操纵拟线种。\n\n该进化方向不提供辅虫。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Myrmecocystus_Production_Medicine</iconPath>
<cooldownTicksRange>1800</cooldownTicksRange>
<hostile>false</hostile>
@@ -227,7 +227,7 @@
<AbilityDef>
<defName>ARA_Myrmecocystus_Production_Fuel</defName>
<label>蜜罐种转换——易燃腔室</label>
<description>使蜜罐种发生内驱性进化,以牺牲生产阿拉克涅虫蜜的代价,使其可以产出化合燃料,增强其护甲并给予其额外的喷射火焰的能力。\n\n该进化过程不可逆!</description>
<description>使蜜罐种发生内驱性进化,以牺牲生产阿拉克涅虫蜜的代价,使其可以产出化合燃料,增强其护甲并给予其额外的喷射火焰的能力。\n\n该进化方向不提供辅虫。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Myrmecocystus_Production_Fuel</iconPath>
<cooldownTicksRange>1800</cooldownTicksRange>
<hostile>false</hostile>
@@ -374,6 +374,7 @@
<description>阿拉克涅的战士虫们可以将身体变成自己的最强大的武装,随着科技的解锁,它们将获得繁多的技能以供使用。</description>
<descriptionHyperlinks>
<HediffDef>ARA_Fighter_Invisibility</HediffDef>
<HediffDef>ARA_Fighter_Genestealer</HediffDef>
</descriptionHyperlinks>
<hediffClass>HediffWithComps</hediffClass>
<defaultLabelColor>(0.6, 0.4, 0.8)</defaultLabelColor>
@@ -395,6 +396,15 @@
<angleOffset>0</angleOffset>
<autoAttack>true</autoAttack>
</li> -->
<li Class="ArachnaeSwarm.HediffCompProperties_ProductionQueue">
<productionQueue>
<li>
<pawnKind>ArachnaeBase_Race_Acidcut</pawnKind>
<count>4</count>
<cooldownTicks>1000</cooldownTicks>
</li>
</productionQueue>
</li>
<li Class="HediffCompProperties_GiveAbility">
<abilityDefs>
<li>ARA_AcidSprayBurst</li>
@@ -414,7 +424,7 @@
<AbilityDef>
<defName>ARA_Fighter_Invisibility</defName>
<label>战士种转换——隐形杀手</label>
<description>使战士种发生内驱性进化,极大地损害其远程武器和特殊技能的使用能力,以换取近乎永久的隐形和强大的近战能力。\n\n该进化过程不可逆!</description>
<description>使战士种发生内驱性进化,极大地损害其远程武器和特殊技能的使用能力,以换取近乎永久的隐形和强大的近战能力。\n\n该进化方向不提供辅虫。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Fighter_Invisibility</iconPath>
<cooldownTicksRange>1800</cooldownTicksRange>
<hostile>false</hostile>
@@ -499,7 +509,7 @@
<AbilityDef>
<defName>ARA_Fighter_Genestealer</defName>
<label>战士种转换——基因窃贼</label>
<description>使战士种发生内驱性进化,损害其战斗能力和使用技能的能力,以换取从敌人身上窃取基因和向己方殖民者注入基因的能力。\n\n该进化过程不可逆!</description>
<description>使战士种发生内驱性进化,损害其战斗能力和使用技能的能力,以换取从敌人身上窃取基因和向己方殖民者注入基因的能力。\n\n该进化方向不提供辅虫。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Fighter_Genestealer</iconPath>
<cooldownTicksRange>1800</cooldownTicksRange>
<hostile>false</hostile>
@@ -576,6 +586,7 @@
<description>迷雾种是阿拉克涅虫族中的大家伙,它们不仅拥有厚实的外壳,其灌满信息素浓烟的腹部可以喷出覆盖战场的气体,吸引那些较小的辅虫破土而出对敌方发起疯狂的攻击。</description>
<descriptionHyperlinks>
<HediffDef>ARA_Smokepop_Production_Bacterium</HediffDef>
<HediffDef>ARA_Smokepop_Creeper</HediffDef>
</descriptionHyperlinks>
<hediffClass>HediffWithComps</hediffClass>
<defaultLabelColor>(0.6, 0.4, 0.8)</defaultLabelColor>
@@ -622,6 +633,15 @@
</li>
</stages>
<comps>
<li Class="ArachnaeSwarm.HediffCompProperties_ProductionQueue">
<productionQueue>
<li>
<pawnKind>ArachnaeBase_Race_Baneling</pawnKind>
<count>4</count>
<cooldownTicks>600</cooldownTicks>
</li>
</productionQueue>
</li>
<li Class="HediffCompProperties_GiveAbility">
<abilityDefs>
<li>ARA_Ability_Smokepop</li>
@@ -640,7 +660,7 @@
<AbilityDef>
<defName>ARA_Smokepop_Production_Bacterium</defName>
<label>迷雾种转换——钜菌专精</label>
<description>使迷雾种发生内驱性进化,以牺牲喷射信息素和降低护甲为代价,使其可以定期产出阿拉克涅虫族的高级材料——活化钜菌。\n\n该进化过程不可逆!</description>
<description>使迷雾种发生内驱性进化,以牺牲喷射信息素和降低护甲为代价,使其可以定期产出阿拉克涅虫族的高级材料——活化钜菌。\n\n该进化方向不提供辅虫。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Smokepop_Production_Bacterium</iconPath>
<cooldownTicksRange>1800</cooldownTicksRange>
<hostile>false</hostile>
@@ -744,7 +764,7 @@
<AbilityDef>
<defName>ARA_Smokepop_Creeper</defName>
<label>迷雾种转换——菌毯支援</label>
<description>使迷雾种发生内驱性进化,以牺牲喷射信息素为代价,使其获得额外防御力、移动速度和大范围、高速铺设菌毯的能力。\n\n该进化过程不可逆!</description>
<description>使迷雾种发生内驱性进化,以牺牲喷射信息素为代价,使其获得额外防御力、移动速度和大范围、高速铺设菌毯的能力。\n\n该进化方向提供6只阿拉克涅爆裂种辅虫。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Smokepop_Creeper</iconPath>
<cooldownTicksRange>1800</cooldownTicksRange>
<hostile>false</hostile>
@@ -830,6 +850,15 @@
</li>
</stages>
<comps>
<li Class="ArachnaeSwarm.HediffCompProperties_ProductionQueue">
<productionQueue>
<li>
<pawnKind>ArachnaeBase_Race_Baneling</pawnKind>
<count>6</count>
<cooldownTicks>600</cooldownTicks>
</li>
</productionQueue>
</li>
<li Class="HediffCompProperties_GiveAbility">
<abilityDefs>
<li>ARA_Smokepop_Creeper_Ability_On</li>
@@ -888,6 +917,15 @@
</li>
</stages>
<comps>
<li Class="ArachnaeSwarm.HediffCompProperties_ProductionQueue">
<productionQueue>
<li>
<pawnKind>ArachnaeBase_Race_Longpincer</pawnKind>
<count>3</count>
<cooldownTicks>5000</cooldownTicks>
</li>
</productionQueue>
</li>
<li Class="HediffCompProperties_GiveAbility">
<abilityDefs>
<li>ARA_ShieldHead_Protector</li>
@@ -905,7 +943,7 @@
<AbilityDef>
<defName>ARA_ShieldHead_Protector</defName>
<label>盾头种转换——虫巢护卫</label>
<description>使盾头种发生内驱性进化,以牺牲产出甲壳素和建造建筑的能力为代价,使其获得更强大的战斗能力、移动能力和冲撞攻击的技能。\n\n该进化过程不可逆!</description>
<description>使盾头种发生内驱性进化,以牺牲产出甲壳素和建造建筑的能力为代价,使其获得更强大的战斗能力、移动能力和冲撞攻击的技能。\n\n该进化方向提供4只阿拉克涅酸噬种辅虫。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_ShieldHead_Protector</iconPath>
<cooldownTicksRange>1800</cooldownTicksRange>
<hostile>false</hostile>
@@ -1008,6 +1046,15 @@
</li>
</stages>
<comps>
<li Class="ArachnaeSwarm.HediffCompProperties_ProductionQueue">
<productionQueue>
<li>
<pawnKind>ArachnaeBase_Race_Acidcut</pawnKind>
<count>4</count>
<cooldownTicks>1000</cooldownTicks>
</li>
</productionQueue>
</li>
<li Class="HediffCompProperties_GiveAbility">
<abilityDefs>
<li>ARA_Ability_TrackingCharge</li>
@@ -1018,7 +1065,7 @@
<AbilityDef>
<defName>ARA_ShieldHead_HiveBuilder</defName>
<label>盾头种转换——营建大师</label>
<description>使盾头种发生内驱性进化,以防御能力为代价,使其获得更强大的甲壳素产出能力和建造技能。\n\n该进化过程不可逆!</description>
<description>使盾头种发生内驱性进化,以防御能力为代价,使其获得更强大的甲壳素产出能力和建造技能。\n\n该进化方向提供4只阿拉克涅巨颚种辅虫。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_ShieldHead_HiveBuilder</iconPath>
<cooldownTicksRange>1800</cooldownTicksRange>
<hostile>false</hostile>
@@ -1078,6 +1125,15 @@
</li>
</stages>
<comps>
<li Class="ArachnaeSwarm.HediffCompProperties_ProductionQueue">
<productionQueue>
<li>
<pawnKind>ArachnaeBase_Race_Longpincer</pawnKind>
<count>4</count>
<cooldownTicks>5000</cooldownTicks>
</li>
</productionQueue>
</li>
<li Class="ArachnaeSwarm.MoharHediffs.HediffCompProperties_Spawner">
<!--
==================================================
@@ -1177,6 +1233,15 @@
</li>
</stages>
<comps>
<li Class="ArachnaeSwarm.HediffCompProperties_ProductionQueue">
<productionQueue>
<li>
<pawnKind>ArachnaeBase_Race_Skyhive</pawnKind>
<count>4</count>
<cooldownTicks>800</cooldownTicks>
</li>
</productionQueue>
</li>
<li Class="HediffCompProperties_GiveAbility">
<abilityDefs>
<li>ARA_Skyraider_jump</li>
@@ -1529,6 +1594,7 @@
</comps>
</HediffDef>
<!-- 暴徒种 -->
<HediffDef>
<defName>ARA_Slayer_Base</defName>
<label>暴虐之兽</label>
@@ -1568,4 +1634,45 @@
</li>
</stages>
</HediffDef>
<!-- 工艺种 -->
<HediffDef>
<defName>ARA_WeaponSmith_Base</defName>
<label>虫巢维护者</label>
<description>阿拉克涅的工艺种们是勤劳的工蜂,她们负责维护整个巢穴的建筑,并使其在最佳状态下运作。</description>
<!-- <descriptionHyperlinks>
<HediffDef>ARA_Fighter_Invisibility</HediffDef>
<HediffDef>ARA_Fighter_Genestealer</HediffDef>
</descriptionHyperlinks> -->
<hediffClass>HediffWithComps</hediffClass>
<defaultLabelColor>(0.6, 0.4, 0.8)</defaultLabelColor>
<isBad>false</isBad>
<scenarioCanAdd>false</scenarioCanAdd>
<maxSeverity>1.0</maxSeverity>
<!-- <stages>
<li>
<becomeVisible>ture</becomeVisible>
</li>
<li>
<minSeverity>1.01</minSeverity>
<becomeVisible>false</becomeVisible>
</li>
</stages> -->
<comps>
<!-- <li Class="ArachnaeSwarm.HediffCompProperties_TopTurret">
<turretDef>ARA_Fighter_Base_Turret</turretDef>
<angleOffset>0</angleOffset>
<autoAttack>true</autoAttack>
</li> -->
<li Class="ArachnaeSwarm.HediffCompProperties_ProductionQueue">
<productionQueue>
<li>
<pawnKind>ArachnaeBase_Race_Hivekeeping</pawnKind>
<count>4</count>
<cooldownTicks>5000</cooldownTicks>
</li>
</productionQueue>
</li>
</comps>
</HediffDef>
</Defs>

View File

@@ -32,6 +32,15 @@
<li Class="ArachnaeSwarm.HediffCompProperties_GestaltNode">
<nodeType>OverlordNode</nodeType>
</li>
<li Class="ArachnaeSwarm.HediffCompProperties_ProductionQueue">
<productionQueue>
<li>
<pawnKind>ArachnaeBase_Race_Larva</pawnKind>
<count>5</count>
<cooldownTicks>1000</cooldownTicks>
</li>
</productionQueue>
</li>
<!-- <li Class="ArachnaeSwarm.HediffCompProperties_HiveMindMaster">
<scanIntervalTicks>3200</scanIntervalTicks>
</li> -->

View File

@@ -438,6 +438,7 @@
<combatPower>75</combatPower>
<ecoSystemWeight>0</ecoSystemWeight>
<maxGenerationAge>1</maxGenerationAge>
<collidesWithPawns>false</collidesWithPawns>
<moveSpeedFactorByTerrainTag>
<li>
<key>ARA_Creep</key>
@@ -452,7 +453,7 @@
<lifeStages>
<li>
<bodyGraphicData>
<texPath>ArachnaeSwarm/Things/ARA_Scavenger/Scavenger/Naked_Thin</texPath>
<texPath>ArachnaeSwarm/Things/ARA_Larva/Bodies/Naked_Thin</texPath>
<drawSize>1</drawSize>
<shadowData>
<volume>(0.4, 0.5, 0.37)</volume>
@@ -473,7 +474,7 @@
<lifeStages>
<li>
<bodyGraphicData>
<texPath>ArachnaeSwarm/Things/ARA_Scavenger/Scavenger/Naked_Thin</texPath>
<texPath>ArachnaeSwarm/Things/ARA_Scavenger/Bodies/Naked_Thin</texPath>
<drawSize>1</drawSize>
<shadowData>
<volume>(0.4, 0.5, 0.37)</volume>
@@ -553,7 +554,37 @@
<li>ARA_Baneling_Suicide_Ability</li>
</abilities>
</PawnKindDef>
<PawnKindDef ParentName="ARA_InsectKindBase">
<defName>ArachnaeBase_Race_Skyhive</defName>
<label>阿拉克涅天巢种</label>
<race>ArachnaeBase_Race_Skyhive</race>
<flyingAnimationFramePathPrefix>ArachnaeSwarm/Things/ARA_Skyhive/Flying/Flying_</flyingAnimationFramePathPrefix>
<flyingAnimationFrameCount>1</flyingAnimationFrameCount>
<flyingAnimationTicksPerFrame>2</flyingAnimationTicksPerFrame>
<flyingAnimationDrawSize>1</flyingAnimationDrawSize>
<flyingAnimationDrawSizeIsMultiplier>false</flyingAnimationDrawSizeIsMultiplier>
<flyingAnimationInheritColors>true</flyingAnimationInheritColors>
<lifeStages>
<li>
<bodyGraphicData>
<texPath>ArachnaeSwarm/Things/ARA_Skyhive/Bodies/Naked_Thin</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>1.5</drawSize>
<!-- <color>(145,140,109)</color> -->
<shadowData>
<volume>(0.2, 0.3, 0.2)</volume>
<offset>(0,0,0)</offset>
</shadowData>
</bodyGraphicData>
<dessicatedBodyGraphicData>
<texPath>ArachnaeSwarm/Things/ARA_Skyhive/Bodies/Naked_Thin</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>1.5</drawSize>
<color>(255,255,255)</color>
</dessicatedBodyGraphicData>
</li>
</lifeStages>
</PawnKindDef>
<PawnKindDef Name="ArachnaeBase_Race_Acidcut" ParentName="ARA_InsectKindBase">
<defName>ArachnaeBase_Race_Acidcut</defName>
<label>阿拉克涅酸噬种</label>
@@ -575,6 +606,7 @@
</li>
</lifeStages>
</PawnKindDef>
<PawnKindDef Name="ArachnaeBase_Race_Acidling" ParentName="ARA_InsectKindBase">
<defName>ArachnaeBase_Race_Acidling</defName>
<label>阿拉克涅爆裂种</label>
@@ -617,37 +649,6 @@
</li>
</lifeStages>
</PawnKindDef>
<PawnKindDef ParentName="ARA_InsectKindBase">
<defName>ArachnaeBase_Race_Skyhive</defName>
<label>阿拉克涅天巢种</label>
<race>ArachnaeBase_Race_Skyhive</race>
<flyingAnimationFramePathPrefix>ArachnaeSwarm/Things/ARA_Skyhive/Flying/Flying_</flyingAnimationFramePathPrefix>
<flyingAnimationFrameCount>1</flyingAnimationFrameCount>
<flyingAnimationTicksPerFrame>2</flyingAnimationTicksPerFrame>
<flyingAnimationDrawSize>1</flyingAnimationDrawSize>
<flyingAnimationDrawSizeIsMultiplier>false</flyingAnimationDrawSizeIsMultiplier>
<flyingAnimationInheritColors>true</flyingAnimationInheritColors>
<lifeStages>
<li>
<bodyGraphicData>
<texPath>ArachnaeSwarm/Things/ARA_Skyhive/Bodies/Naked_Thin</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>1.5</drawSize>
<!-- <color>(145,140,109)</color> -->
<shadowData>
<volume>(0.2, 0.3, 0.2)</volume>
<offset>(0,0,0)</offset>
</shadowData>
</bodyGraphicData>
<dessicatedBodyGraphicData>
<texPath>ArachnaeSwarm/Things/ARA_Skyhive/Bodies/Naked_Thin</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>1.5</drawSize>
<color>(255,255,255)</color>
</dessicatedBodyGraphicData>
</li>
</lifeStages>
</PawnKindDef>
<PawnKindDef Name="ArachnaeBeast_Race_Slayer" ParentName="ARA_InsectKindBase">
<defName>ArachnaeBeast_Race_Slayer</defName>

View File

@@ -2,7 +2,7 @@
<Defs>
<ThingDef Name="ArachnaeBase_Race" ParentName="BaseInsect" Abstract="True">
<statBases>
<MaxNutrition>0.3</MaxNutrition>
<MaxNutrition>3</MaxNutrition>
<MoveSpeed>8</MoveSpeed>
<MarketValue>0</MarketValue>
<LeatherAmount>0</LeatherAmount>
@@ -50,6 +50,7 @@
<race>
<body>BeetleLikeWithClaw</body>
<thinkTreeMain>ARA_Insect_WithPlanting</thinkTreeMain>
<foodType>CarnivoreAnimal,OvivoreAnimal</foodType>
<baseHungerRate>0.1</baseHungerRate>
<baseBodySize>0.5</baseBodySize>
<baseHealthScale>1</baseHealthScale>
@@ -82,12 +83,14 @@
</headPosPerRotation>
</race>
<comps>
<!-- <li Class="CompProperties_MechPowerCell">
<totalPowerTicks>240000</totalPowerTicks>
<li Class="ArachnaeSwarm.CompProperties_NodeSwarmLifetime">
<immuteHediff>ARA_Cycle_Suppression_Hediff</immuteHediff>
<lifespanHediff>ARA_LifespanHediff</lifespanHediff>
<lifetimeDays>12</lifetimeDays>
<labelOverride>寿命</labelOverride>
<tooltipOverride>这种特殊的阿拉克涅辅虫从出生起就走在死亡的道路上了——它们的寿命就是如此短暂。</tooltipOverride>
<tooltipOverride>阿拉克涅辅虫从出生起就走在死亡的道路上了——它们的寿命就是如此短暂。</tooltipOverride>
<showGizmoOnNonPlayerControlled>true</showGizmoOnNonPlayerControlled>
</li> -->
</li>
<li Class="ArachnaeSwarm.CompProperties_HediffGiver">
<hediffs>
<li>ARA_TemperatureRegulation</li>
@@ -154,7 +157,7 @@
<label>阿拉克涅食腐种</label>
<description>阿拉克涅辅虫之一,食谱广泛,可以执行种植、收割和搬运工作,拥有一个较小的蜜罐腔,可以像其监管者一样产出虫蜜。</description>
<statBases>
<MaxNutrition>3</MaxNutrition>
<MaxNutrition>6</MaxNutrition>
</statBases>
<race>
<thinkTreeMain>ARA_Insect_Scavenger_Thinktree</thinkTreeMain>
@@ -521,6 +524,90 @@
</li>
</comps>
</ThingDef>
<ThingDef ParentName="ArachnaeBase_Race">
<defName>ArachnaeBase_Race_Skyhive</defName>
<label>阿拉克涅天巢种</label>
<description>阿拉克涅辅虫之一,拥有贴地飞行的能力,无论是攻击还是移动速度非常快。</description>
<race>
<thinkTreeMain>ARA_Insect_Skyhive_Thinktree</thinkTreeMain>
<baseBodySize>0.3</baseBodySize>
<!-- <hasCorpse>false</hasCorpse> -->
<body>BeetleLikeWithClaw</body>
<deathAction Class="DeathActionProperties_Vanish">
<workerClass>DeathActionWorker_Vanish</workerClass>
<filth>Filth_Slime</filth>
<filthCountRange>1~3</filthCountRange>
</deathAction>
<flightStartChanceOnJobStart>1.0</flightStartChanceOnJobStart>
</race>
<statBases>
<MoveSpeed>6</MoveSpeed>
<ArmorRating_Blunt>0.25</ArmorRating_Blunt>
<ArmorRating_Sharp>0.25</ArmorRating_Sharp>
<MaxFlightTime>9999</MaxFlightTime>
<FlightCooldown>0</FlightCooldown>
</statBases>
<tools Inherit="False">
<li>
<label>复合颚</label>
<capacities>
<li>Cut</li>
</capacities>
<power>3</power>
<cooldownTime>0.8</cooldownTime>
<linkedBodyPartsGroup>HeadAttackTool</linkedBodyPartsGroup>
<ensureLinkedBodyPartsGroupAlwaysUsable>true</ensureLinkedBodyPartsGroupAlwaysUsable>
</li>
</tools>
<comps>
<li Class="ArachnaeSwarm.CompProperties_PawnFlight">
<flightCondition>Always</flightCondition>
<flyingAnimationNorth>ARA_Psi_FlyNorth</flyingAnimationNorth>
<flyingAnimationEast>ARA_Psi_FlyNorth</flyingAnimationEast>
<flyingAnimationSouth>ARA_Psi_FlyNorth</flyingAnimationSouth>
</li>
<li Class="ArachnaeSwarm.CompProperties_AdvancedTraining">
<trainables>
<li>
<trainable>Obedience</trainable>
<trainInstantly>true</trainInstantly>
<setWanted>true</setWanted>
</li>
<li>
<trainable>Release</trainable>
<trainInstantly>true</trainInstantly>
<setWanted>true</setWanted>
</li>
<li>
<trainable>Rescue</trainable>
<trainInstantly>true</trainInstantly>
<setWanted>true</setWanted>
</li>
<li>
<trainable>Tameness</trainable>
<trainInstantly>true</trainInstantly>
<setWanted>true</setWanted>
</li>
<li>
<trainable>AttackTarget</trainable>
<trainInstantly>true</trainInstantly>
<setWanted>true</setWanted>
</li>
</trainables>
<disableAllSkillDecay>true</disableAllSkillDecay> <!-- 阻止这个动物的所有技能衰减 -->
</li>
<li Class="ArachnaeSwarm.CompProperties_HediffGiver">
<hediffs>
<li>ARA_HiveMindWorker</li>
</hediffs>
<addChance>1.0</addChance>
<allowDuplicates>false</allowDuplicates>
</li>
</comps>
</ThingDef>
<ToolCapacityDef>
<defName>ARA_AcidCut</defName>

View File

@@ -73,24 +73,6 @@
</li>
</comps>
</ThingDef>
<ThingDef ParentName="ARA_BaseDroneSwarm">
<defName>ArachnaeBase_Race_Skyhive</defName>
<label>阿拉克涅天巢种</label>
<description>阿拉克涅辅虫之一,智力低下,通常被督虫们当成导弹打出,拥有在飞行中调整姿态以追踪敌军的能力。命中敌军后,这些虫族会趴在敌军身上进行啃咬,直到鳌刺松动而掉在地上。</description>
<race>
<flightStartChanceOnJobStart>1.0</flightStartChanceOnJobStart>
<thinkTreeConstant>WarUrchinConstant</thinkTreeConstant>
<baseBodySize>0.3</baseBodySize>
<!-- <hasCorpse>false</hasCorpse> -->
<body>BeetleLikeWithClaw</body>
</race>
<statBases>
<MoveSpeed>6</MoveSpeed>
<MaxFlightTime>9999</MaxFlightTime>
<FlightCooldown>0</FlightCooldown>
</statBases>
</ThingDef>
<ThingDef ParentName="ARA_BaseDroneSwarm">
<defName>ArachnaeBase_Race_Acidling</defName>
<label>阿拉克涅爆裂种</label>

View File

@@ -124,11 +124,11 @@
<layerOffset>-0.275</layerOffset>
</north>
<east>
<offset>(-0.1,0.39)</offset>
<offset>(-0.1,0.3)</offset>
<layerOffset>-0.273</layerOffset>
</east>
<west>
<offset>(-0.1,0.39)</offset>
<offset>(-0.1,0.3)</offset>
<layerOffset>-0.273</layerOffset>
</west>
</offsets>
@@ -153,10 +153,10 @@
<!-- same options as above -->
</south>
<east>
<offset>(0.0, 0.05)</offset>
<offset>(0.0, 0)</offset>
</east>
<west>
<offset>(0.0, 0.05)</offset>
<offset>(0.0, 0)</offset>
</west>
</headOffsetDirectional>
</alienPartGenerator>
@@ -818,7 +818,7 @@
<AlienRace.ThingDef_AlienRace ParentName="ARA_NodeBase">
<defName>ArachnaeNode_Race_ShieldHead</defName>
<label>阿拉克涅盾头种</label>
<description>阿拉克涅督虫之一,拥有过度生长而覆盖头部和腿部的甲壳,可以定时剥落甲壳素供虫巢使用。\n\n她可以进行搬运、采矿和建筑工作战斗技能平平无奇但是拥有较好的防御。\n\n作为督虫她可以繁育并监管若干阿拉克涅坚颚种辅虫以协助巢穴开采矿脉这些辅虫在其监管者被征召的状态下会跟随其一起出击并为保护虫巢而战斗。</description>
<description>阿拉克涅督虫之一,拥有过度生长而覆盖头部和腿部的甲壳,可以定时剥落甲壳素供虫巢使用。\n\n她可以进行搬运、采矿和建筑工作战斗技能平平无奇但是拥有较好的防御。</description>
<alienRace>
<generalSettings>
<!-- 各种零件定义 -->
@@ -939,18 +939,6 @@
<li Class="ArachnaeSwarm.CompProperties_AutoMechCarrier">
<freeProduction>true</freeProduction>
<disableHediff>ARA_RaceBaseSwarmProduceSwitchHediff</disableHediff>
<fixedIngredient>ARA_InsectJelly</fixedIngredient>
<maxIngredientCount>1</maxIngredientCount>
<startingIngredientCount>1</startingIngredientCount>
<costPerPawn>1</costPerPawn>
<cooldownTicks>9999</cooldownTicks>
<productionQueue>
<li>
<pawnKind>ArachnaeBase_Race_Longpincer</pawnKind>
<count>4</count>
<cooldownTicks>5000</cooldownTicks>
</li>
</productionQueue>
<spawnEffecter>CocoonDestroyed</spawnEffecter>
</li>
<li Class="ArachnaeSwarm.CompProperties_NodeSwarmLifetime">
@@ -983,7 +971,7 @@
<AlienRace.ThingDef_AlienRace ParentName="ARA_NodeBase">
<defName>ArachnaeNode_Race_WeaponSmith</defName>
<label>阿拉克涅工艺种</label>
<description>阿拉克涅督虫之一,主要负责巢穴的维护,以及使用灵巧的肢体为虫群处理一些精细工作。\n\n她可以进行搬运、手工和艺术工作战斗技能平平无奇但本身极度脆弱。\n\n作为督虫她可以繁育并监管若干阿拉克涅家政种辅虫以协助巢穴进行清洁、搬运和虫群建筑维护工作。</description>
<description>阿拉克涅督虫之一,主要负责巢穴的维护,以及使用灵巧的肢体为虫群处理一些精细工作。\n\n她可以进行搬运、手工和艺术工作战斗技能平平无奇但本身极度脆弱。</description>
<alienRace>
<generalSettings>
<!-- 各种零件定义 -->
@@ -1064,26 +1052,15 @@
<li Class="ArachnaeSwarm.CompProperties_AutoMechCarrier">
<freeProduction>true</freeProduction>
<disableHediff>ARA_RaceBaseSwarmProduceSwitchHediff</disableHediff>
<fixedIngredient>ARA_InsectJelly</fixedIngredient>
<maxIngredientCount>1</maxIngredientCount>
<startingIngredientCount>1</startingIngredientCount>
<costPerPawn>1</costPerPawn>
<cooldownTicks>9999</cooldownTicks>
<productionQueue>
<li>
<pawnKind>ArachnaeBase_Race_Hivekeeping</pawnKind>
<count>4</count>
<cooldownTicks>5000</cooldownTicks>
</li>
</productionQueue>
<spawnEffecter>CocoonDestroyed</spawnEffecter>
</li>
<!-- <li Class="ArachnaeSwarm.CompProperties_HediffGiver">
<li Class="ArachnaeSwarm.CompProperties_HediffGiver">
<hediffs>
<li>ARA_WeaponSmith_Base</li>
</hediffs>
<addChance>1.0</addChance>
<allowDuplicates>false</allowDuplicates>
</li> -->
</li>
<li Class="ArachnaeSwarm.CompProperties_NodeSwarmLifetime">
<immuteHediff>ARA_Cycle_Suppression_Hediff</immuteHediff>
<lifespanHediff>ARA_LifespanHediff</lifespanHediff>
@@ -1215,18 +1192,6 @@
<li Class="ArachnaeSwarm.CompProperties_AutoMechCarrier">
<freeProduction>true</freeProduction>
<disableHediff>ARA_RaceBaseSwarmProduceSwitchHediff</disableHediff>
<fixedIngredient>ARA_InsectJelly</fixedIngredient>
<maxIngredientCount>1</maxIngredientCount>
<startingIngredientCount>1</startingIngredientCount>
<costPerPawn>1</costPerPawn>
<cooldownTicks>9999</cooldownTicks>
<productionQueue>
<li>
<pawnKind>ArachnaeBase_Race_Acidcut</pawnKind>
<count>4</count>
<cooldownTicks>1000</cooldownTicks>
</li>
</productionQueue>
<spawnEffecter>CocoonDestroyed</spawnEffecter>
</li>
<li Class="ArachnaeSwarm.CompProperties_NodeSwarmLifetime">
@@ -1361,7 +1326,7 @@
<AlienRace.ThingDef_AlienRace ParentName="ARA_NodeBase_Huge">
<defName>ArachnaeNode_Race_Smokepop</defName>
<label>阿拉克涅迷雾种</label>
<description>阿拉克涅大型督虫之一,身披厚重甲壳的大型虫族,拥有在大范围内喷射信息素以召唤辅虫虫群能力,虽然移动速度比较慢,但是在战斗中就如同装甲车一样难以撼动。\n\n她可以进行搬运工作拥有不错的战斗技能防御力和伤害耐受能力强大。\n\n作为督虫她可以繁育并监管大量阿拉克涅家政种辅虫以协助巢穴进行清洁和搬运工作。</description>
<description>阿拉克涅大型督虫之一,身披厚重甲壳的大型虫族,拥有在大范围内喷射信息素以召唤辅虫虫群能力,虽然移动速度比较慢,但是在战斗中就如同装甲车一样难以撼动。\n\n她可以进行搬运工作拥有不错的战斗技能防御力和伤害耐受能力强大。</description>
<alienRace>
<generalSettings>
<!-- 各种零件定义 -->
@@ -1434,13 +1399,6 @@
<li Class="ArachnaeSwarm.CompProperties_AutoMechCarrier">
<freeProduction>true</freeProduction>
<disableHediff>ARA_RaceBaseSwarmProduceSwitchHediff</disableHediff>
<productionQueue>
<li>
<pawnKind>ArachnaeBase_Race_Baneling</pawnKind>
<count>6</count>
<cooldownTicks>600</cooldownTicks>
</li>
</productionQueue>
<spawnEffecter>CocoonDestroyed</spawnEffecter>
</li>
<li Class="ArachnaeSwarm.CompProperties_HediffGiver">
@@ -1491,7 +1449,7 @@
<AlienRace.ThingDef_AlienRace ParentName="ARA_NodeBase_Huge">
<defName>ArachnaeNode_Race_Skyraider</defName>
<label>阿拉克涅空天种</label>
<description>阿拉克涅大型督虫之一,众督虫中的精锐,身材巨大并且拥有引以为傲的飞行能力,是巢穴中无可争议的空中霸主。\n\n她可以进行搬运工作拥有不错的战斗技能在战场上行动时非常灵活。\n\n作为督虫她可以向敌人发射天巢种辅虫这种辅虫会自动修正姿态追踪敌军并在命中后对敌人进行持续啃咬。</description>
<description>阿拉克涅大型督虫之一,众督虫中的精锐,身材巨大并且拥有引以为傲的飞行能力,是巢穴中无可争议的空中霸主。\n\n她可以进行搬运工作拥有不错的战斗技能在战场上行动时非常灵活。</description>
<alienRace>
<generalSettings>
<!-- 各种零件定义 -->
@@ -1563,6 +1521,11 @@
</race>
<comps>
<li Class="ArachnaeSwarm.CompProperties_AutoMechCarrier">
<freeProduction>true</freeProduction>
<disableHediff>ARA_RaceBaseSwarmProduceSwitchHediff</disableHediff>
<spawnEffecter>CocoonDestroyed</spawnEffecter>
</li>
<li Class="ArachnaeSwarm.CompProperties_HediffGiver">
<hediffs>
<li>ARA_Skyraider_Base</li>

View File

@@ -757,18 +757,6 @@
<li Class="ArachnaeSwarm.CompProperties_AutoMechCarrier">
<freeProduction>true</freeProduction>
<disableHediff>ARA_RaceBaseSwarmProduceSwitchHediff</disableHediff>
<fixedIngredient>ARA_InsectJelly</fixedIngredient>
<maxIngredientCount>1</maxIngredientCount>
<startingIngredientCount>1</startingIngredientCount>
<costPerPawn>999</costPerPawn>
<cooldownTicks>9999</cooldownTicks>
<productionQueue>
<li>
<pawnKind>ArachnaeBase_Race_Larva</pawnKind>
<count>5</count>
<cooldownTicks>1000</cooldownTicks>
</li>
</productionQueue>
<spawnEffecter>CocoonDestroyed</spawnEffecter>
</li>
<li Class="ArachnaeSwarm.CompProperties_AreaDamage">

View File

@@ -1776,12 +1776,6 @@
</li>
</subNodes>
</li>
<li Class="ThinkNode_ConditionalAnimalShouldDig">
<subNodes>
<li Class="JobGiver_Mine" />
</subNodes>
</li>
</subNodes>
</li>
@@ -2443,6 +2437,260 @@
</subNodes>
</thinkRoot>
</ThinkTreeDef>
<ThinkTreeDef>
<defName>ARA_Insect_Skyhive_Thinktree</defName>
<thinkRoot Class="ThinkNode_Priority">
<subNodes>
<!-- Keep lying down if we have to -->
<li Class="ThinkNode_ConditionalMustKeepLyingDown">
<subNodes>
<!-- Do a queued job if possible -->
<li Class="ThinkNode_QueuedJob">
<inBedOnly>true</inBedOnly>
</li>
<!-- Keep lying down -->
<li Class="JobGiver_KeepLyingDown"/>
</subNodes>
</li>
<li Class="ThinkNode_Subtree">
<treeDef>Downed</treeDef>
</li>
<li Class="ThinkNode_Subtree">
<treeDef>BurningResponse</treeDef>
</li>
<li Class="ThinkNode_Subtree">
<treeDef>MentalStateCritical</treeDef>
</li>
<!-- React to close melee threat -->
<li Class="JobGiver_ReactToCloseMeleeThreat"/>
<!-- Do a queued job -->
<li Class="ThinkNode_QueuedJob"/>
<!-- Mental state non critical -->
<li Class="ThinkNode_Subtree">
<treeDef>MentalStateNonCritical</treeDef>
</li>
<!-- Forced goto -->
<li Class="ThinkNode_ConditionalForcedGoto">
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Misc</tagToGive>
<subNodes>
<li Class="JobGiver_ForcedGoto"/>
</subNodes>
</li>
</subNodes>
</li>
<!-- Behavior when roped -->
<li Class="ThinkNode_Subtree">
<treeDef>RopedPawn</treeDef>
</li>
<!-- Lord directives -->
<li Class="ThinkNode_Subtree">
<treeDef>LordDuty</treeDef>
</li>
<li Class="ThinkNode_ConditionalHasFaction">
<invert>true</invert>
<subNodes>
<!-- Wild insects with no lord will fight nearby enemies -->
<li Class="JobGiver_AIFightEnemies">
<targetAcquireRadius>30</targetAcquireRadius> <!-- Same as DefendAndExpandHive -->
<targetKeepRadius>35</targetKeepRadius>
</li>
<!-- Wild insects leave map in some conditions -->
<li Class="ThinkNode_Subtree">
<treeDef>LeaveIfWrongSeason</treeDef>
</li>
<li Class="ThinkNode_Subtree">
<treeDef>LeaveIfStarving</treeDef>
</li>
<!-- Wild insects randomly leave map -->
<li Class="ThinkNode_ChancePerHour_Constant">
<mtbDays>60</mtbDays>
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Misc</tagToGive>
<subNodes>
<li Class="JobGiver_ExitMapRandom">
<defaultLocomotion>Walk</defaultLocomotion>
</li>
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- Insects of a faction that's not the players without a lord leave randomly -->
<li Class="ThinkNode_ConditionalOfPlayerFaction">
<invert>true</invert>
<subNodes>
<li Class="ThinkNode_ConditionalHasFaction">
<subNodes>
<li Class="ThinkNode_ConditionalNoLord">
<subNodes>
<li Class="ThinkNode_ChancePerHour_Constant">
<mtbDays>60</mtbDays>
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Misc</tagToGive>
<subNodes>
<li Class="JobGiver_ExitMapRandom">
<defaultLocomotion>Walk</defaultLocomotion>
</li>
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- 特殊处理——如果生产者被征召会跟随pawn -->
<li Class="ThinkNode_ConditionalOfPlayerFaction">
<subNodes>
<li Class="ArachnaeSwarm.ThinkNode_ConditionalShouldFollowProducer">
<subNodes>
<li Class="ArachnaeSwarm.JobGiver_AIDefendProducer">
<attackMeleeThreatEvenIfNotHostile>true</attackMeleeThreatEvenIfNotHostile>
<defendRadius>100</defendRadius>
</li>
<li Class="ArachnaeSwarm.JobGiver_AIFollowProducer"/>
<li Class="ArachnaeSwarm.JobGiver_WanderNearProducer"/>
</subNodes>
</li>
<!-- Take care of critical needs (below rescue - so heroic!)-->
<li Class="ThinkNode_Tagger">
<tagToGive>RestingForMedicalReasons</tagToGive>
<subNodes>
<li Class="JobGiver_PatientGoToBed"/>
</subNodes>
</li>
<li Class="JobGiver_SeekAllowedArea"/>
<li Class="JobGiver_SeekSafeTemperature"/>
</subNodes>
</li>
<!-- Satisfy basic needs -->
<li Class="ThinkNode_Subtree">
<treeDef>SatisfyBasicNeeds</treeDef>
</li>
<!-- Tame animal: wander near colony if possible -->
<li Class="ThinkNode_ConditionalOfPlayerFaction">
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Idle</tagToGive>
<subNodes>
<!-- Wander near your current position if in hostile map -->
<li Class="ThinkNode_ConditionalAnyEnemyInHostileMap">
<subNodes>
<li Class="JobGiver_WanderAnywhere">
<maxDanger>None</maxDanger>
<ticksBetweenWandersRange>160~300</ticksBetweenWandersRange>
</li>
</subNodes>
</li>
<li Class="ThinkNode_ConditionalRoamer">
<subNodes>
<li Class="JobGiver_WanderInRoofedCellsInPen">
<maxDanger>None</maxDanger>
<ticksBetweenWandersRange>160~300</ticksBetweenWandersRange>
<expiryInterval>1200</expiryInterval>
</li>
<!-- tame roamers should not wander too far, and if unenclosed wander near a suitable pen marker 10% of the time -->
<li Class="ThinkNode_ConditionalRandom">
<chance>0.1</chance>
<subNodes>
<li Class="JobGiver_WanderInPen">
<maxDanger>None</maxDanger>
<ticksBetweenWandersRange>160~300</ticksBetweenWandersRange>
<expiryInterval>1200</expiryInterval>
</li>
</subNodes>
</li>
<li Class="JobGiver_WanderAnywhere">
<maxDanger>None</maxDanger>
<ticksBetweenWandersRange>160~300</ticksBetweenWandersRange>
</li>
</subNodes>
</li>
<!-- Wander near colony -->
<li Class="JobGiver_WanderColony">
<maxDanger>None</maxDanger>
<ticksBetweenWandersRange>160~300</ticksBetweenWandersRange>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- Of neutral faction: rest and then exit the map -->
<li Class="ThinkNode_ConditionalNonPlayerNonHostileFaction">
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>RestingForMedicalReasons</tagToGive>
<subNodes>
<li Class="JobGiver_PatientGoToBed" />
</subNodes>
</li>
<li Class="ThinkNode_Tagger">
<tagToGive>Misc</tagToGive>
<subNodes>
<li Class="JobGiver_ExitMapBest">
<defaultLocomotion>Walk</defaultLocomotion>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- Wander -->
<li Class="ThinkNode_Tagger">
<tagToGive>Idle</tagToGive>
<subNodes>
<li Class="ThinkNode_ConditionalHerdAnimal">
<subNodes>
<li Class="JobGiver_WanderHerd">
<maxDanger>Deadly</maxDanger>
<ticksBetweenWandersRange>160~300</ticksBetweenWandersRange>
</li>
</subNodes>
</li>
<li Class="JobGiver_WanderAnywhere">
<maxDanger>Deadly</maxDanger>
<ticksBetweenWandersRange>160~300</ticksBetweenWandersRange>
</li>
</subNodes>
</li>
<li Class="JobGiver_IdleError"/>
</subNodes>
</thinkRoot>
</ThinkTreeDef>
<ThinkTreeDef>
<defName>ARA_Humanlike</defName> <!-- 更改defName以避免与原版Humanlike冲突 -->

View File

@@ -133,4 +133,6 @@
<AreaDamageEnabled>区域伤害启动</AreaDamageEnabled>
<AreaDamageDisabled>区域伤害关闭</AreaDamageDisabled>
<ARA_ProductionQueue_Description>将{0}只{1}加入辅虫孵化序列</ARA_ProductionQueue_Description>
</LanguageData>

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

View File

@@ -1,106 +1,22 @@
{
"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\\hediffs\\ara_productionqueue\\hediffcompproperties_productionqueue.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_flight\\pawn_flighttrackerpatches.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_flight\\pawn_flighttrackerpatches.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_flight\\compproperties_pawnflight.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_flight\\compproperties_pawnflight.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_productionqueue\\hediffcompproperties_productionqueue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_productionqueue\\hediffcompproperties_productionqueue.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_productionqueue\\hediffcomp_productionqueue.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_productionqueue\\hediffcomp_productionqueue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_productionqueue\\hediffcomp_productionqueue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\pawn_comps\\ara_automechcarrier\\compproperties_automechcarrier.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_automechcarrier\\compproperties_automechcarrier.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\pawn_comps\\ara_automechcarrier\\compautomechcarrier.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_automechcarrier\\compautomechcarrier.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\pawn_comps\\ara_automechcarrier\\compproducedbymechcarrier.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_automechcarrier\\compproducedbymechcarrier.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\\eventsystem\\compopencustomui.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:eventsystem\\compopencustomui.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_GatherUnit\\CompAbilityEffect_GatherUnit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:Abilities\\ARA_GatherUnit\\CompAbilityEffect_GatherUnit.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\\damage\\damagedefextension_terraincover.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:damage\\damagedefextension_terraincover.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\\damage\\damageworker_explosionwithterrain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:damage\\damageworker_explosionwithterrain.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_arachnaegravengine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_arachnaegravengine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_extracthoney\\thinknode_conditionalshouldextract.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_extracthoney\\thinknode_conditionalshouldextract.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_extracthoney\\jobgiver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_extracthoney\\jobgiver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_extracthoney\\jobdriver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_extracthoney\\jobdriver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\needs\\need_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\\pawn_comps\\ara_honeyproduction_animal\\comphoneyproduction_animal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_honeyproduction_animal\\comphoneyproduction_animal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\pawn_comps\\ara_trainingwork\\compadvancedtraining.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_trainingwork\\compadvancedtraining.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_clean\\thinknode_conditionalanimalshoulddocleaningwork.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_clean\\thinknode_conditionalanimalshoulddocleaningwork.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_plant\\jobgiver_grower.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_plant\\jobgiver_grower.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_plant\\thinknode_conditionalanimalshoulddogrowingwork.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_plant\\thinknode_conditionalanimalshoulddogrowingwork.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\workgivers\\workgiver_arachnaeclean.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:workgivers\\workgiver_arachnaeclean.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_clean\\jobgiver_cleaner.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_clean\\jobgiver_cleaner.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ara_defof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:ara_defof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\workgivers\\workgiver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:workgivers\\workgiver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\workgivers\\workgiver_feedwithhoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"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:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_AutoMechCarrier\\AutoMechCarrierUtils.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:Pawn_Comps\\ARA_AutoMechCarrier\\AutoMechCarrierUtils.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
@@ -119,307 +35,54 @@
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "HediffCompProperties_ProductionQueue.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_ProductionQueue\\HediffCompProperties_ProductionQueue.cs",
"RelativeDocumentMoniker": "Hediffs\\ARA_ProductionQueue\\HediffCompProperties_ProductionQueue.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_ProductionQueue\\HediffCompProperties_ProductionQueue.cs",
"RelativeToolTip": "Hediffs\\ARA_ProductionQueue\\HediffCompProperties_ProductionQueue.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAMAAAASAAAAAAAAAA==",
"Title": "Pawn_FlightTrackerPatches.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_Flight\\Pawn_FlightTrackerPatches.cs",
"RelativeDocumentMoniker": "Pawn_Comps\\ARA_Flight\\Pawn_FlightTrackerPatches.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_Flight\\Pawn_FlightTrackerPatches.cs",
"RelativeToolTip": "Pawn_Comps\\ARA_Flight\\Pawn_FlightTrackerPatches.cs",
"ViewState": "AgIAAB0AAAAAAAAAAAAuwEsAAAAfAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-22T09:30:17.721Z",
"WhenOpened": "2026-01-22T14:03:17.973Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "HediffComp_ProductionQueue.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_ProductionQueue\\HediffComp_ProductionQueue.cs",
"RelativeDocumentMoniker": "Hediffs\\ARA_ProductionQueue\\HediffComp_ProductionQueue.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_ProductionQueue\\HediffComp_ProductionQueue.cs",
"RelativeToolTip": "Hediffs\\ARA_ProductionQueue\\HediffComp_ProductionQueue.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAOEAAAAAAAAAAAAAAA==",
"Title": "CompProperties_PawnFlight.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_Flight\\CompProperties_PawnFlight.cs",
"RelativeDocumentMoniker": "Pawn_Comps\\ARA_Flight\\CompProperties_PawnFlight.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_Flight\\CompProperties_PawnFlight.cs",
"RelativeToolTip": "Pawn_Comps\\ARA_Flight\\CompProperties_PawnFlight.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAeAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-22T09:01:06.335Z",
"WhenOpened": "2026-01-22T14:02:45.434Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "HediffComp_ProductionQueue.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_ProductionQueue\\HediffComp_ProductionQueue.cs",
"RelativeDocumentMoniker": "Hediffs\\ARA_ProductionQueue\\HediffComp_ProductionQueue.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_ProductionQueue\\HediffComp_ProductionQueue.cs",
"RelativeToolTip": "Hediffs\\ARA_ProductionQueue\\HediffComp_ProductionQueue.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAB8AAAAMAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-22T10:31:06.201Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "CompProperties_AutoMechCarrier.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_AutoMechCarrier\\CompProperties_AutoMechCarrier.cs",
"RelativeDocumentMoniker": "Pawn_Comps\\ARA_AutoMechCarrier\\CompProperties_AutoMechCarrier.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_AutoMechCarrier\\CompProperties_AutoMechCarrier.cs",
"RelativeToolTip": "Pawn_Comps\\ARA_AutoMechCarrier\\CompProperties_AutoMechCarrier.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAACUAAAAdAAAAAAAAAA==",
"Title": "HediffCompProperties_ProductionQueue.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_ProductionQueue\\HediffCompProperties_ProductionQueue.cs",
"RelativeDocumentMoniker": "Hediffs\\ARA_ProductionQueue\\HediffCompProperties_ProductionQueue.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_ProductionQueue\\HediffCompProperties_ProductionQueue.cs",
"RelativeToolTip": "Hediffs\\ARA_ProductionQueue\\HediffCompProperties_ProductionQueue.cs",
"ViewState": "AgIAAB8AAAAAAAAAAAAewEoAAAApAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-22T09:00:42.285Z",
"WhenOpened": "2026-01-22T09:30:17.721Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 5,
"Title": "CompOpenCustomUI.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\EventSystem\\CompOpenCustomUI.cs",
"RelativeDocumentMoniker": "EventSystem\\CompOpenCustomUI.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\EventSystem\\CompOpenCustomUI.cs",
"RelativeToolTip": "EventSystem\\CompOpenCustomUI.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-22T08:22:11.975Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 6,
"Title": "CompAbilityEffect_GatherUnit.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_GatherUnit\\CompAbilityEffect_GatherUnit.cs",
"RelativeDocumentMoniker": "Abilities\\ARA_GatherUnit\\CompAbilityEffect_GatherUnit.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_GatherUnit\\CompAbilityEffect_GatherUnit.cs",
"RelativeToolTip": "Abilities\\ARA_GatherUnit\\CompAbilityEffect_GatherUnit.cs",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-22T07:31:57.322Z"
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "CompAutoMechCarrier.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_AutoMechCarrier\\CompAutoMechCarrier.cs",
"RelativeDocumentMoniker": "Pawn_Comps\\ARA_AutoMechCarrier\\CompAutoMechCarrier.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_AutoMechCarrier\\CompAutoMechCarrier.cs",
"RelativeToolTip": "Pawn_Comps\\ARA_AutoMechCarrier\\CompAutoMechCarrier.cs",
"ViewState": "AgIAAEgCAAAAAAAAAAAewFsCAAAMAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-22T03:56:27.144Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 24,
"Title": "AutoMechCarrierUtils.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_AutoMechCarrier\\AutoMechCarrierUtils.cs",
"RelativeDocumentMoniker": "Pawn_Comps\\ARA_AutoMechCarrier\\AutoMechCarrierUtils.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_AutoMechCarrier\\AutoMechCarrierUtils.cs",
"RelativeToolTip": "Pawn_Comps\\ARA_AutoMechCarrier\\AutoMechCarrierUtils.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABgAAABBAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-22T07:07:38.083Z"
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "CompProducedByMechCarrier.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_AutoMechCarrier\\CompProducedByMechCarrier.cs",
"RelativeDocumentMoniker": "Pawn_Comps\\ARA_AutoMechCarrier\\CompProducedByMechCarrier.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_AutoMechCarrier\\CompProducedByMechCarrier.cs",
"RelativeToolTip": "Pawn_Comps\\ARA_AutoMechCarrier\\CompProducedByMechCarrier.cs",
"ViewState": "AgIAACsAAAAAAAAAAAAUwEAAAAArAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-22T03:56:26.73Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 8,
"Title": "DamageWorker_ExplosionWithTerrain.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Damage\\DamageWorker_ExplosionWithTerrain.cs",
"RelativeDocumentMoniker": "Damage\\DamageWorker_ExplosionWithTerrain.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Damage\\DamageWorker_ExplosionWithTerrain.cs",
"RelativeToolTip": "Damage\\DamageWorker_ExplosionWithTerrain.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAFAAAAAbAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-22T03:13:00.366Z"
},
{
"$type": "Document",
"DocumentIndex": 9,
"Title": "Building_ArachnaeGravEngine.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ArachnaeGravEngine.cs",
"RelativeDocumentMoniker": "Buildings\\Building_ArachnaeGravEngine.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ArachnaeGravEngine.cs",
"RelativeToolTip": "Buildings\\Building_ArachnaeGravEngine.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAXAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-22T03:12:54.988Z"
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "DamageDefExtension_TerrainCover.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Damage\\DamageDefExtension_TerrainCover.cs",
"RelativeDocumentMoniker": "Damage\\DamageDefExtension_TerrainCover.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Damage\\DamageDefExtension_TerrainCover.cs",
"RelativeToolTip": "Damage\\DamageDefExtension_TerrainCover.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAAwAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-22T03:12:51.315Z"
},
{
"$type": "Document",
"DocumentIndex": 10,
"Title": "ThinkNode_ConditionalShouldExtract.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_ExtractHoney\\ThinkNode_ConditionalShouldExtract.cs",
"RelativeDocumentMoniker": "Jobs\\JobDriver_ExtractHoney\\ThinkNode_ConditionalShouldExtract.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_ExtractHoney\\ThinkNode_ConditionalShouldExtract.cs",
"RelativeToolTip": "Jobs\\JobDriver_ExtractHoney\\ThinkNode_ConditionalShouldExtract.cs",
"ViewState": "AgIAACMAAAAAAAAAAAAewEwAAAANAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-21T16:03:09.823Z"
},
{
"$type": "Document",
"DocumentIndex": 11,
"Title": "JobGiver_ExtractHoney.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_ExtractHoney\\JobGiver_ExtractHoney.cs",
"RelativeDocumentMoniker": "Jobs\\JobDriver_ExtractHoney\\JobGiver_ExtractHoney.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_ExtractHoney\\JobGiver_ExtractHoney.cs",
"RelativeToolTip": "Jobs\\JobDriver_ExtractHoney\\JobGiver_ExtractHoney.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAmAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-21T16:03:08.689Z"
},
{
"$type": "Document",
"DocumentIndex": 14,
"Title": "CompHoneyProduction_Animal.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_HoneyProduction_Animal\\CompHoneyProduction_Animal.cs",
"RelativeDocumentMoniker": "Pawn_Comps\\ARA_HoneyProduction_Animal\\CompHoneyProduction_Animal.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_HoneyProduction_Animal\\CompHoneyProduction_Animal.cs",
"RelativeToolTip": "Pawn_Comps\\ARA_HoneyProduction_Animal\\CompHoneyProduction_Animal.cs",
"ViewState": "AgIAAAAAAAAAAAAAAADwvxEAAAAFAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-21T15:46:16.654Z"
},
{
"$type": "Document",
"DocumentIndex": 15,
"Title": "CompAdvancedTraining.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_TrainingWork\\CompAdvancedTraining.cs",
"RelativeDocumentMoniker": "Pawn_Comps\\ARA_TrainingWork\\CompAdvancedTraining.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_TrainingWork\\CompAdvancedTraining.cs",
"RelativeToolTip": "Pawn_Comps\\ARA_TrainingWork\\CompAdvancedTraining.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABQAAAAJAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-21T15:39:27.128Z"
},
{
"$type": "Document",
"DocumentIndex": 13,
"Title": "Need_HoneyProduction.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Needs\\Need_HoneyProduction.cs",
"RelativeDocumentMoniker": "Needs\\Need_HoneyProduction.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Needs\\Need_HoneyProduction.cs",
"RelativeToolTip": "Needs\\Need_HoneyProduction.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAuwAYAAAARAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-21T09:20:43.405Z"
},
{
"$type": "Document",
"DocumentIndex": 16,
"Title": "ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Clean\\ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs",
"RelativeDocumentMoniker": "Jobs\\JobDriver_Clean\\ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Clean\\ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs",
"RelativeToolTip": "Jobs\\JobDriver_Clean\\ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABQAAAABAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-21T02:34:01.359Z"
},
{
"$type": "Document",
"DocumentIndex": 12,
"Title": "JobDriver_ExtractHoney.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_ExtractHoney\\JobDriver_ExtractHoney.cs",
"RelativeDocumentMoniker": "Jobs\\JobDriver_ExtractHoney\\JobDriver_ExtractHoney.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_ExtractHoney\\JobDriver_ExtractHoney.cs",
"RelativeToolTip": "Jobs\\JobDriver_ExtractHoney\\JobDriver_ExtractHoney.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAABLAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-21T01:33:14.481Z"
},
{
"$type": "Document",
"DocumentIndex": 20,
"Title": "JobGiver_Cleaner.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Clean\\JobGiver_Cleaner.cs",
"RelativeDocumentMoniker": "Jobs\\JobDriver_Clean\\JobGiver_Cleaner.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Clean\\JobGiver_Cleaner.cs",
"RelativeToolTip": "Jobs\\JobDriver_Clean\\JobGiver_Cleaner.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-21T02:34:00.68Z"
},
{
"$type": "Document",
"DocumentIndex": 19,
"Title": "WorkGiver_ArachnaeClean.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_ArachnaeClean.cs",
"RelativeDocumentMoniker": "WorkGivers\\WorkGiver_ArachnaeClean.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_ArachnaeClean.cs",
"RelativeToolTip": "WorkGivers\\WorkGiver_ArachnaeClean.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-21T02:34:01.968Z"
},
{
"$type": "Document",
"DocumentIndex": 17,
"Title": "JobGiver_Grower.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Plant\\JobGiver_Grower.cs",
"RelativeDocumentMoniker": "Jobs\\JobDriver_Plant\\JobGiver_Grower.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Plant\\JobGiver_Grower.cs",
"RelativeToolTip": "Jobs\\JobDriver_Plant\\JobGiver_Grower.cs",
"ViewState": "AgIAAF8AAAAAAAAAAAAQwA8AAAAcAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-21T01:13:33.373Z"
},
{
"$type": "Document",
"DocumentIndex": 18,
"Title": "ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Plant\\ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs",
"RelativeDocumentMoniker": "Jobs\\JobDriver_Plant\\ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Plant\\ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs",
"RelativeToolTip": "Jobs\\JobDriver_Plant\\ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAAFAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-21T01:11:35.603Z"
},
{
"$type": "Document",
"DocumentIndex": 22,
"Title": "WorkGiver_ExtractHoney.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_ExtractHoney.cs",
"RelativeDocumentMoniker": "WorkGivers\\WorkGiver_ExtractHoney.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_ExtractHoney.cs",
"RelativeToolTip": "WorkGivers\\WorkGiver_ExtractHoney.cs",
"ViewState": "AgIAADEAAAAAAAAAAAAUwFIAAABEAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-21T01:28:50.976Z"
},
{
"$type": "Document",
"DocumentIndex": 23,
"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": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-21T01:28:50.336Z"
},
{
"$type": "Document",
"DocumentIndex": 21,
"Title": "ARA_DefOf.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARA_DefOf.cs",
"RelativeDocumentMoniker": "ARA_DefOf.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARA_DefOf.cs",
"RelativeToolTip": "ARA_DefOf.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAAqAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-21T01:11:53.56Z"
}
]
}

View File

@@ -19,50 +19,6 @@ namespace ArachnaeSwarm
// 是否启用调试日志
public bool debugLogging = false;
// ===== 新增:控制信息显示的字段 =====
// 是否在Hediff描述中显示生产能力信息
public bool showProductionInfoInHediff = true;
// 信息标题(可翻译)
public string infoTitle = "ProductionQueue_InfoTitle"; // 默认值
// 信息格式字符串(可翻译)
// 可用变量: {UNIT} - 单位名称, {COUNT} - 可生产数量
public string infoFormat = "ProductionQueue_InfoFormat"; // 默认值
// 当生产队列为空时显示的信息(可翻译)
public string emptyQueueInfo = "ProductionQueue_EmptyInfo";
// 信息分隔符(可翻译)
public string infoSeparator = "\n";
// 是否在信息中显示单位成本(如果设置了成本)
public bool showCostInInfo = true;
// 成本信息格式(可翻译)
public string costInfoFormat = "ProductionQueue_CostFormat"; // {COST} - 成本数量
// 是否在信息中显示冷却时间(如果设置了冷却时间)
public bool showCooldownInInfo = false;
// 冷却时间信息格式(可翻译)
public string cooldownInfoFormat = "ProductionQueue_CooldownFormat"; // {COOLDOWN} - 冷却时间描述
// 是否显示条件信息(如果条目有条件限制)
public bool showConditionInfo = false;
// 条件已满足时的信息(可翻译)
public string conditionMetInfo = "ProductionQueue_ConditionMet";
// 条件未满足时的信息(可翻译)
public string conditionNotMetInfo = "ProductionQueue_ConditionNotMet";
// 是否在信息末尾添加额外说明如果有customInfo字段
public bool showCustomInfo = true;
// 自定义信息格式(可翻译)
public string customInfoFormat = "ProductionQueue_CustomInfoFormat"; // {CUSTOMINFO} - 自定义信息
public HediffCompProperties_ProductionQueue()
{
compClass = typeof(HediffComp_ProductionQueue);
@@ -98,134 +54,34 @@ namespace ArachnaeSwarm
}
/// <summary>
/// 获取生产能力信息的字符串
/// 获取显示的额外描述信息
/// 格式:"将X只Y加入辅虫孵化序列"
/// </summary>
public string GetProductionInfoString(Pawn pawn = null)
public string GetExtraDescriptionString()
{
// 如果不显示信息,返回空字符串
if (!showProductionInfoInHediff || productionQueue == null || productionQueue.Count == 0)
{
if (productionQueue == null || productionQueue.Count == 0)
return "";
}
System.Text.StringBuilder sb = new System.Text.StringBuilder();
// 添加标题
if (!string.IsNullOrEmpty(infoTitle))
{
sb.AppendLine(infoTitle.Translate());
}
bool hasAnyEntry = false;
var descriptions = new List<string>();
foreach (var entry in productionQueue)
{
if (entry.pawnKind == null)
if (entry.pawnKind == null || entry.count <= 0)
continue;
// 获取PawnKindDef的标签使用label或labelPlural
string pawnLabel = entry.pawnKind.label;
// 构建描述字符串:"将X只Y加入辅虫孵化序列"
string description = "ARA_ProductionQueue_Description".Translate(
entry.count.ToString(),
pawnLabel);
// 检查条件是否满足
bool conditionsMet = true;
string conditionReason = "";
if (pawn != null && !entry.conditions.NullOrEmpty())
{
// 检查所有条件
foreach (var condition in entry.conditions)
{
string reason;
if (!condition.IsMet(out reason))
{
conditionsMet = false;
conditionReason = reason;
break;
}
}
}
// 构建条目信息
string entryInfo = BuildEntryInfo(entry, pawn, conditionsMet, conditionReason);
if (!string.IsNullOrEmpty(entryInfo))
{
sb.Append(entryInfo);
sb.Append(infoSeparator);
hasAnyEntry = true;
}
descriptions.Add(description);
}
// 如果没有有效的条目
if (!hasAnyEntry)
{
return emptyQueueInfo.Translate();
}
// 移除最后一个分隔符
if (sb.Length > 0 && sb.ToString().EndsWith(infoSeparator))
{
sb.Length -= infoSeparator.Length;
}
return sb.ToString();
}
/// <summary>
/// 构建单个条目的信息
/// </summary>
private string BuildEntryInfo(PawnProductionEntry entry, Pawn pawn, bool conditionsMet, string conditionReason)
{
// 如果条件不满足且设置了隐藏不可用的条目,返回空字符串
if (!conditionsMet && !showConditionInfo)
{
return "";
}
System.Text.StringBuilder entrySb = new System.Text.StringBuilder();
// 基本格式:单位名称 x 数量
string baseInfo = infoFormat.Translate(
"UNIT".Translate(entry.pawnKind.LabelCap),
"COUNT".Translate(entry.count)
);
entrySb.Append(baseInfo);
// 添加成本信息
if (showCostInInfo && entry.cost.HasValue && entry.cost.Value > 0)
{
string costInfo = costInfoFormat.Translate("COST".Translate(entry.cost.Value));
entrySb.Append(" ").Append(costInfo);
}
// 添加冷却时间信息
if (showCooldownInInfo && entry.cooldownTicks.HasValue && entry.cooldownTicks.Value > 0)
{
string cooldownDesc = entry.cooldownTicks.Value.ToStringTicksToPeriod();
string cooldownInfo = cooldownInfoFormat.Translate("COOLDOWN".Translate(cooldownDesc));
entrySb.Append(" ").Append(cooldownInfo);
}
// 添加条件状态信息
if (showConditionInfo)
{
if (conditionsMet)
{
string metInfo = conditionMetInfo.Translate();
entrySb.Append(" ").Append(metInfo);
}
else
{
string notMetInfo = conditionNotMetInfo.Translate("REASON".Translate(conditionReason));
entrySb.Append(" ").Append(notMetInfo);
}
}
// 添加自定义信息
if (showCustomInfo && !string.IsNullOrEmpty(entry.customInfo))
{
string customInfo = customInfoFormat.Translate("CUSTOMINFO".Translate(entry.customInfo));
entrySb.Append(" ").Append(customInfo);
}
return entrySb.ToString();
// 如果有多个描述,用换行符连接
return string.Join("\n", descriptions);
}
/// <summary>
@@ -283,31 +139,5 @@ namespace ArachnaeSwarm
return mergedQueue;
}
/// <summary>
/// 获取配置统计信息
/// </summary>
public string GetConfigInfo()
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.AppendLine("=== HediffCompProperties_ProductionQueue 配置 ===");
sb.AppendLine($"显示生产信息: {showProductionInfoInHediff}");
sb.AppendLine($"显示成本信息: {showCostInInfo}");
sb.AppendLine($"显示冷却信息: {showCooldownInInfo}");
sb.AppendLine($"显示条件信息: {showConditionInfo}");
sb.AppendLine($"显示自定义信息: {showCustomInfo}");
sb.AppendLine($"允许动态修改: {allowDynamicModification}");
sb.AppendLine($"生产队列条目数: {productionQueue?.Count ?? 0}");
if (productionQueue != null && productionQueue.Count > 0)
{
foreach (var entry in productionQueue)
{
sb.AppendLine($" • {entry.pawnKind?.defName ?? "NULL"}: {entry.count} 个");
}
}
return sb.ToString();
}
}
}

View File

@@ -13,72 +13,6 @@ namespace ArachnaeSwarm
public HediffCompProperties_ProductionQueue Props =>
(HediffCompProperties_ProductionQueue)props;
/// <summary>
/// 获取Hediff的描述信息显示在Hediff详情中
/// </summary>
public override string CompTipStringExtra
{
get
{
// 获取生产能力信息
string productionInfo = GetProductionInfoString();
if (!string.IsNullOrEmpty(productionInfo))
{
return productionInfo;
}
return base.CompTipStringExtra;
}
}
/// <summary>
/// 获取Hediff的完整描述信息
/// </summary>
public override string CompDescriptionExtra
{
get
{
// 也可以在这里添加生产能力信息
string productionInfo = GetProductionInfoString();
if (!string.IsNullOrEmpty(productionInfo))
{
// 将生产能力信息添加到描述中
string baseDescription = base.CompDescriptionExtra ?? "";
if (!string.IsNullOrEmpty(baseDescription))
{
return baseDescription + "\n\n" + productionInfo;
}
else
{
return productionInfo;
}
}
return base.CompDescriptionExtra;
}
}
/// <summary>
/// 获取生产能力信息字符串
/// </summary>
public string GetProductionInfoString()
{
if (Props == null)
return "";
// 获取当前Pawn如果适用
Pawn pawn = null;
if (parent != null && parent.pawn != null)
{
pawn = parent.pawn;
}
return Props.GetProductionInfoString(pawn);
}
/// <summary>
/// 获取生产队列定义
/// </summary>
@@ -183,89 +117,58 @@ namespace ArachnaeSwarm
return false;
}
/// <summary>
/// 获取额外描述信息
/// 在Hediff的详细描述中显示
/// </summary>
public override string CompTipStringExtra
{
get
{
// 获取基础描述
string baseDescription = base.CompTipStringExtra;
// 获取生产队列描述
string productionDescription = Props.GetExtraDescriptionString();
// 合并描述
if (!string.IsNullOrEmpty(baseDescription) && !string.IsNullOrEmpty(productionDescription))
{
return baseDescription + "\n" + productionDescription;
}
else if (!string.IsNullOrEmpty(productionDescription))
{
return productionDescription;
}
else
{
return baseDescription;
}
}
}
/// <summary>
/// 获取调试信息
/// </summary>
public string GetDebugInfo()
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.AppendLine($"=== HediffComp_ProductionQueue 调试信息 ===");
sb.AppendLine($"Hediff: {parent.def.defName}");
sb.AppendLine($"显示生产信息: {Props.showProductionInfoInHediff}");
sb.AppendLine($"生产队列条目数: {GetProductionQueue()?.Count ?? 0}");
// 显示生产信息字符串
string productionInfo = GetProductionInfoString();
if (!string.IsNullOrEmpty(productionInfo))
{
sb.AppendLine($"生产信息:\n{productionInfo}");
}
sb.AppendLine("=== HediffComp_ProductionQueue 调试信息 ===");
var queue = GetProductionQueue();
sb.AppendLine($"生产队列条目数: {queue?.Count ?? 0}");
if (queue != null && queue.Count > 0)
{
sb.AppendLine($"详细条目:");
foreach (var entry in queue)
{
sb.AppendLine($" • {entry.pawnKind?.label ?? "NULL"}: {entry.count}");
if (entry.cost.HasValue)
sb.AppendLine($" 成本: {entry.cost.Value}");
if (entry.cooldownTicks.HasValue)
sb.AppendLine($" 冷却时间: {entry.cooldownTicks.Value.ToStringTicksToPeriod()}");
sb.AppendLine($" • {entry.pawnKind?.label ?? ""}: {entry.count}");
if (!string.IsNullOrEmpty(entry.customInfo))
{
sb.AppendLine($" 自定义信息: {entry.customInfo}");
}
}
}
else
{
sb.AppendLine(" 生产队列为空");
}
return sb.ToString();
}
/// <summary>
/// 获取统计信息
/// </summary>
public string GetStatistics()
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
var queue = GetProductionQueue();
if (queue != null && queue.Count > 0)
{
sb.AppendLine($"此状态提供以下生产能力:");
foreach (var entry in queue)
{
if (entry.pawnKind == null)
continue;
string entryInfo = $" • {entry.pawnKind.label}: 最多 {entry.count} 个";
if (entry.cost.HasValue)
{
entryInfo += $", 每个消耗 {entry.cost.Value} 资源";
}
if (entry.cooldownTicks.HasValue)
{
string cooldownDesc = entry.cooldownTicks.Value.ToStringTicksToPeriod();
entryInfo += $", 冷却时间 {cooldownDesc}";
}
if (!string.IsNullOrEmpty(entry.customInfo))
{
entryInfo += $" ({entry.customInfo})";
}
sb.AppendLine(entryInfo);
}
}
else
{
sb.AppendLine("此状态不提供生产能力");
}
return sb.ToString();
}

View File

@@ -5,7 +5,8 @@ namespace ArachnaeSwarm
{
public enum FlightCondition
{
Drafted
Drafted,
Always
}
public class CompProperties_PawnFlight : CompProperties

View File

@@ -62,8 +62,16 @@ namespace ArachnaeSwarm
return true;
}
bool shouldBeFlying = false;
var compProps = flightComp.Props;
bool shouldBeFlying = (compProps.flightCondition == FlightCondition.Drafted && ___pawn.Drafted);
if (compProps.flightCondition == FlightCondition.Always)
{
shouldBeFlying = true;
}
else if (compProps.flightCondition == FlightCondition.Drafted && ___pawn.Drafted)
{
shouldBeFlying = true;
}
if (shouldBeFlying)
{