11
This commit is contained in:
Binary file not shown.
@@ -1555,7 +1555,7 @@
|
||||
<verbClass>Verb_CastAbility</verbClass>
|
||||
<range>24</range>
|
||||
<warmupTime>0</warmupTime>
|
||||
<soundCast>Heatspikes_Shot</soundCast>
|
||||
<soundCast>SpitterSpit</soundCast>
|
||||
<soundCastTail>Heatspikes_Tail</soundCastTail>
|
||||
<targetParams>
|
||||
<canTargetPawns>True</canTargetPawns>
|
||||
|
||||
@@ -1299,7 +1299,7 @@
|
||||
<HediffDef>
|
||||
<defName>ARA_Skyraider_Hivelord</defName>
|
||||
<label>亚种-领主种</label>
|
||||
<description>这只阿拉克涅空天种已经获得拔耀,可以孵化大量的天巢种辅虫,这些灵敏的辅虫会后散开四处狩猎目标。</description>
|
||||
<description>这只阿拉克涅空天种已经获得拔耀,可以投掷天巢种辅虫,这些灵敏的辅虫会后散开四处狩猎目标。</description>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<defaultLabelColor>(0.6, 0.4, 0.8)</defaultLabelColor>
|
||||
<isBad>false</isBad>
|
||||
@@ -1347,12 +1347,12 @@
|
||||
<productionQueue>
|
||||
<li>
|
||||
<pawnKind>ArachnaeBase_Race_Skyhive</pawnKind>
|
||||
<count>8</count>
|
||||
<count>4</count>
|
||||
<cooldownTicks>200</cooldownTicks>
|
||||
</li>
|
||||
</productionQueue>
|
||||
</li>
|
||||
<!-- <li Class="ArachnaeSwarm.HediffCompProperties_TopTurret">
|
||||
<li Class="ArachnaeSwarm.HediffCompProperties_TopTurret">
|
||||
<turretDef>ARA_Skyraider_Hivelord_Turret</turretDef>
|
||||
<angleOffset>0</angleOffset>
|
||||
<autoAttack>true</autoAttack>
|
||||
@@ -1360,7 +1360,7 @@
|
||||
<li Class="ArachnaeSwarm.HediffCompProperties_DrawMote">
|
||||
<mote>ARA_Mote_Hivelord_Turret_Range</mote>
|
||||
<hideMoteWhenNotDrafted>true</hideMoteWhenNotDrafted>
|
||||
</li> -->
|
||||
</li>
|
||||
</comps>
|
||||
</HediffDef>
|
||||
<ThingDef ParentName="MoteBase">
|
||||
@@ -1383,7 +1383,7 @@
|
||||
<AbilityDef>
|
||||
<defName>ARA_Skyraider_Empthrower</defName>
|
||||
<label>空天种转换——电磁风暴</label>
|
||||
<description>使空天种发生内驱性进化,以降低机动力和失去高空机动能力为代价,使其获得孵化磁暴种辅虫的能力——这种辅虫会以自杀式袭击的方式释放出EMP,以对抗机械族。\n\n该进化方向提供3只阿拉克涅电磁种辅虫。</description>
|
||||
<description>使空天种发生内驱性进化,以降低机动力和失去高空机动能力为代价,使其获得投掷磁暴种辅虫的能力——这种辅虫会以自杀式袭击的方式释放出EMP,以对抗机械族。\n\n该进化方向不提供阿拉克涅辅虫。</description>
|
||||
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Skyraider_Empthrower</iconPath>
|
||||
<cooldownTicksRange>1800</cooldownTicksRange>
|
||||
<hostile>false</hostile>
|
||||
@@ -1422,7 +1422,7 @@
|
||||
<HediffDef>
|
||||
<defName>ARA_Skyraider_Empthrower</defName>
|
||||
<label>亚种-飓风种</label>
|
||||
<description>这只阿拉克涅空天种已经获得拔耀,会孵化磁暴种辅虫,这些辅虫以自杀性袭击释放EMP对抗敌方机械族。</description>
|
||||
<description>这只阿拉克涅空天种已经获得拔耀,会投掷磁暴种辅虫,这些辅虫以自杀性袭击释放EMP对抗敌方机械族。</description>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<defaultLabelColor>(0.6, 0.4, 0.8)</defaultLabelColor>
|
||||
<isBad>false</isBad>
|
||||
@@ -1466,16 +1466,7 @@
|
||||
</li>
|
||||
</stages>
|
||||
<comps>
|
||||
<li Class="ArachnaeSwarm.HediffCompProperties_ProductionQueue">
|
||||
<productionQueue>
|
||||
<li>
|
||||
<pawnKind>ArachnaeBase_Race_Empsuicider</pawnKind>
|
||||
<count>3</count>
|
||||
<cooldownTicks>200</cooldownTicks>
|
||||
</li>
|
||||
</productionQueue>
|
||||
</li>
|
||||
<!-- <li Class="ArachnaeSwarm.HediffCompProperties_TopTurret">
|
||||
<li Class="ArachnaeSwarm.HediffCompProperties_TopTurret">
|
||||
<turretDef>ARA_Skyraider_Empthrower_Turret</turretDef>
|
||||
<angleOffset>0</angleOffset>
|
||||
<autoAttack>true</autoAttack>
|
||||
@@ -1483,7 +1474,7 @@
|
||||
<li Class="ArachnaeSwarm.HediffCompProperties_DrawMote">
|
||||
<mote>ARA_Mote_Empthrower_Turret_Range</mote>
|
||||
<hideMoteWhenNotDrafted>true</hideMoteWhenNotDrafted>
|
||||
</li> -->
|
||||
</li>
|
||||
</comps>
|
||||
</HediffDef>
|
||||
<ThingDef ParentName="MoteBase">
|
||||
|
||||
@@ -152,6 +152,7 @@
|
||||
<li>ArachnaeBase_Race_Acidcut</li>
|
||||
<li>ArachnaeBase_Race_Baneling</li>
|
||||
<li>ArachnaeBase_Race_Skyhive</li>
|
||||
<li>ArachnaeBase_Race_Locust</li>
|
||||
<li>ArachnaeNode_Race_MimicNematode</li>
|
||||
</targetRaces>
|
||||
|
||||
|
||||
@@ -83,14 +83,6 @@
|
||||
</headPosPerRotation>
|
||||
</race>
|
||||
<comps>
|
||||
<li Class="ArachnaeSwarm.CompProperties_NodeSwarmLifetime">
|
||||
<immuteHediff>ARA_Cycle_Suppression_Hediff</immuteHediff>
|
||||
<lifespanHediff>ARA_LifespanHediff</lifespanHediff>
|
||||
<lifetimeDays>12</lifetimeDays>
|
||||
<labelOverride>寿命</labelOverride>
|
||||
<tooltipOverride>阿拉克涅辅虫从出生起就走在死亡的道路上了——它们的寿命就是如此短暂。</tooltipOverride>
|
||||
<showGizmoOnNonPlayerControlled>true</showGizmoOnNonPlayerControlled>
|
||||
</li>
|
||||
<li Class="ArachnaeSwarm.CompProperties_HediffGiver">
|
||||
<hediffs>
|
||||
<li>ARA_TemperatureRegulation</li>
|
||||
@@ -174,6 +166,14 @@
|
||||
</race>
|
||||
<comps>
|
||||
<li Class="ArachnaeSwarm.CompProperties_HoneyProduction_Animal"></li>
|
||||
<li Class="ArachnaeSwarm.CompProperties_NodeSwarmLifetime">
|
||||
<immuteHediff>ARA_Cycle_Suppression_Hediff</immuteHediff>
|
||||
<lifespanHediff>ARA_LifespanHediff</lifespanHediff>
|
||||
<lifetimeDays>12</lifetimeDays>
|
||||
<labelOverride>寿命</labelOverride>
|
||||
<tooltipOverride>阿拉克涅辅虫从出生起就走在死亡的道路上了——它们的寿命就是如此短暂。</tooltipOverride>
|
||||
<showGizmoOnNonPlayerControlled>true</showGizmoOnNonPlayerControlled>
|
||||
</li>
|
||||
<li Class="ArachnaeSwarm.CompProperties_AdvancedTraining">
|
||||
<trainables>
|
||||
<li>
|
||||
@@ -246,13 +246,21 @@
|
||||
<capacities>
|
||||
<li>Cut</li>
|
||||
</capacities>
|
||||
<power>7</power>
|
||||
<power>4</power>
|
||||
<cooldownTime>2.8</cooldownTime>
|
||||
<linkedBodyPartsGroup>HeadAttackTool</linkedBodyPartsGroup>
|
||||
<ensureLinkedBodyPartsGroupAlwaysUsable>true</ensureLinkedBodyPartsGroupAlwaysUsable>
|
||||
</li>
|
||||
</tools>
|
||||
<comps>
|
||||
<li Class="ArachnaeSwarm.CompProperties_NodeSwarmLifetime">
|
||||
<immuteHediff>ARA_Cycle_Suppression_Hediff</immuteHediff>
|
||||
<lifespanHediff>ARA_LifespanHediff</lifespanHediff>
|
||||
<lifetimeDays>12</lifetimeDays>
|
||||
<labelOverride>寿命</labelOverride>
|
||||
<tooltipOverride>阿拉克涅辅虫从出生起就走在死亡的道路上了——它们的寿命就是如此短暂。</tooltipOverride>
|
||||
<showGizmoOnNonPlayerControlled>true</showGizmoOnNonPlayerControlled>
|
||||
</li>
|
||||
<li Class="ArachnaeSwarm.CompProperties_AdvancedTraining">
|
||||
<trainables>
|
||||
<li>
|
||||
@@ -323,6 +331,14 @@
|
||||
</deathAction>
|
||||
</race>
|
||||
<comps>
|
||||
<li Class="ArachnaeSwarm.CompProperties_NodeSwarmLifetime">
|
||||
<immuteHediff>ARA_Cycle_Suppression_Hediff</immuteHediff>
|
||||
<lifespanHediff>ARA_LifespanHediff</lifespanHediff>
|
||||
<lifetimeDays>12</lifetimeDays>
|
||||
<labelOverride>寿命</labelOverride>
|
||||
<tooltipOverride>阿拉克涅辅虫从出生起就走在死亡的道路上了——它们的寿命就是如此短暂。</tooltipOverride>
|
||||
<showGizmoOnNonPlayerControlled>true</showGizmoOnNonPlayerControlled>
|
||||
</li>
|
||||
<li Class="ArachnaeSwarm.CompProperties_SwarmMaintainer">
|
||||
<showDebugInfo>false</showDebugInfo>
|
||||
<relevantSkill>Crafting</relevantSkill>
|
||||
@@ -411,6 +427,14 @@
|
||||
</li>
|
||||
</tools>
|
||||
<comps>
|
||||
<li Class="ArachnaeSwarm.CompProperties_NodeSwarmLifetime">
|
||||
<immuteHediff>ARA_Cycle_Suppression_Hediff</immuteHediff>
|
||||
<lifespanHediff>ARA_LifespanHediff</lifespanHediff>
|
||||
<lifetimeDays>12</lifetimeDays>
|
||||
<labelOverride>寿命</labelOverride>
|
||||
<tooltipOverride>阿拉克涅辅虫从出生起就走在死亡的道路上了——它们的寿命就是如此短暂。</tooltipOverride>
|
||||
<showGizmoOnNonPlayerControlled>true</showGizmoOnNonPlayerControlled>
|
||||
</li>
|
||||
<li Class="ArachnaeSwarm.CompProperties_AdvancedTraining">
|
||||
<trainables>
|
||||
<li>
|
||||
@@ -469,6 +493,14 @@
|
||||
<MoveSpeed>6.6</MoveSpeed>
|
||||
</statBases>
|
||||
<comps>
|
||||
<li Class="ArachnaeSwarm.CompProperties_NodeSwarmLifetime">
|
||||
<immuteHediff>ARA_Cycle_Suppression_Hediff</immuteHediff>
|
||||
<lifespanHediff>ARA_LifespanHediff</lifespanHediff>
|
||||
<lifetimeDays>30</lifetimeDays>
|
||||
<labelOverride>寿命</labelOverride>
|
||||
<tooltipOverride>阿拉克涅辅虫从出生起就走在死亡的道路上了——它们的寿命就是如此短暂。</tooltipOverride>
|
||||
<showGizmoOnNonPlayerControlled>true</showGizmoOnNonPlayerControlled>
|
||||
</li>
|
||||
<li Class="ArachnaeSwarm.CompProperties_AdvancedTraining">
|
||||
<trainables>
|
||||
<li>
|
||||
@@ -538,6 +570,14 @@
|
||||
<MoveSpeed>6.6</MoveSpeed>
|
||||
</statBases>
|
||||
<comps>
|
||||
<li Class="ArachnaeSwarm.CompProperties_NodeSwarmLifetime">
|
||||
<immuteHediff>ARA_Cycle_Suppression_Hediff</immuteHediff>
|
||||
<lifespanHediff>ARA_LifespanHediff</lifespanHediff>
|
||||
<lifetimeDays>0.5</lifetimeDays>
|
||||
<labelOverride>寿命</labelOverride>
|
||||
<tooltipOverride>阿拉克涅辅虫从出生起就走在死亡的道路上了——它们的寿命就是如此短暂。</tooltipOverride>
|
||||
<showGizmoOnNonPlayerControlled>true</showGizmoOnNonPlayerControlled>
|
||||
</li>
|
||||
<li Class="ArachnaeSwarm.CompProperties_AdvancedTraining">
|
||||
<trainables>
|
||||
<li>
|
||||
@@ -625,6 +665,14 @@
|
||||
</li>
|
||||
</tools>
|
||||
<comps>
|
||||
<li Class="ArachnaeSwarm.CompProperties_NodeSwarmLifetime">
|
||||
<immuteHediff>ARA_Cycle_Suppression_Hediff</immuteHediff>
|
||||
<lifespanHediff>ARA_LifespanHediff</lifespanHediff>
|
||||
<lifetimeDays>12</lifetimeDays>
|
||||
<labelOverride>寿命</labelOverride>
|
||||
<tooltipOverride>阿拉克涅辅虫从出生起就走在死亡的道路上了——它们的寿命就是如此短暂。</tooltipOverride>
|
||||
<showGizmoOnNonPlayerControlled>true</showGizmoOnNonPlayerControlled>
|
||||
</li>
|
||||
<li Class="ArachnaeSwarm.CompProperties_PawnFlight">
|
||||
<flightCondition>Always</flightCondition>
|
||||
|
||||
@@ -706,6 +754,14 @@
|
||||
</li>
|
||||
</tools>
|
||||
<comps>
|
||||
<li Class="ArachnaeSwarm.CompProperties_NodeSwarmLifetime">
|
||||
<immuteHediff>ARA_Cycle_Suppression_Hediff</immuteHediff>
|
||||
<lifespanHediff>ARA_LifespanHediff</lifespanHediff>
|
||||
<lifetimeDays>15</lifetimeDays>
|
||||
<labelOverride>寿命</labelOverride>
|
||||
<tooltipOverride>阿拉克涅辅虫从出生起就走在死亡的道路上了——它们的寿命就是如此短暂。</tooltipOverride>
|
||||
<showGizmoOnNonPlayerControlled>true</showGizmoOnNonPlayerControlled>
|
||||
</li>
|
||||
<li Class="ArachnaeSwarm.CompProperties_AdvancedTraining">
|
||||
<trainables>
|
||||
<li>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<MoveSpeed>5</MoveSpeed>
|
||||
</statBases>
|
||||
<race>
|
||||
<lifeExpectancy>2500</lifeExpectancy>
|
||||
<lifeExpectancy>100</lifeExpectancy>
|
||||
<body>ArachnaeSlayer_Body</body>
|
||||
<thinkTreeMain>ARA_Insect_Beast</thinkTreeMain>
|
||||
<!-- 身形大小 -->
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Defs>
|
||||
|
||||
<ThinkTreeDef>
|
||||
<defName>ARA_Insect_Beast</defName>
|
||||
<thinkRoot Class="ThinkNode_Priority">
|
||||
@@ -1010,9 +1009,6 @@
|
||||
<treeDef>MentalStateCritical</treeDef>
|
||||
</li>
|
||||
|
||||
<!-- React to close melee threat -->
|
||||
<li Class="JobGiver_ReactToCloseMeleeThreat"/>
|
||||
|
||||
<!-- Do a queued job -->
|
||||
<li Class="ThinkNode_QueuedJob"/>
|
||||
|
||||
@@ -1110,9 +1106,11 @@
|
||||
<subNodes>
|
||||
<li Class="ArachnaeSwarm.ThinkNode_ConditionalNotProducedByMechCarrier">
|
||||
<subNodes>
|
||||
<!-- React to close melee threat -->
|
||||
<li Class="JobGiver_ReactToCloseMeleeThreat"/>
|
||||
<li Class="JobGiver_AIFightEnemies">
|
||||
<targetAcquireRadius>100</targetAcquireRadius>
|
||||
<targetKeepRadius>100</targetKeepRadius>
|
||||
<targetAcquireRadius>30</targetAcquireRadius>
|
||||
<targetKeepRadius>35</targetKeepRadius>
|
||||
</li>
|
||||
<li Class="JobGiver_AITrashColonyClose" />
|
||||
<li Class="JobGiver_AITrashBuildingsDistant" />
|
||||
@@ -1372,9 +1370,6 @@
|
||||
<treeDef>MentalStateCritical</treeDef>
|
||||
</li>
|
||||
|
||||
<!-- React to close melee threat -->
|
||||
<li Class="JobGiver_ReactToCloseMeleeThreat"/>
|
||||
|
||||
<!-- Do a queued job -->
|
||||
<li Class="ThinkNode_QueuedJob"/>
|
||||
|
||||
@@ -1472,9 +1467,11 @@
|
||||
<subNodes>
|
||||
<li Class="ArachnaeSwarm.ThinkNode_ConditionalNotProducedByMechCarrier">
|
||||
<subNodes>
|
||||
<!-- React to close melee threat -->
|
||||
<li Class="JobGiver_ReactToCloseMeleeThreat"/>
|
||||
<li Class="JobGiver_AIFightEnemies">
|
||||
<targetAcquireRadius>100</targetAcquireRadius>
|
||||
<targetKeepRadius>100</targetKeepRadius>
|
||||
<targetAcquireRadius>30</targetAcquireRadius>
|
||||
<targetKeepRadius>35</targetKeepRadius>
|
||||
</li>
|
||||
<li Class="JobGiver_AITrashColonyClose" />
|
||||
<li Class="JobGiver_AITrashBuildingsDistant" />
|
||||
@@ -2265,9 +2262,6 @@
|
||||
<treeDef>MentalStateCritical</treeDef>
|
||||
</li>
|
||||
|
||||
<!-- React to close melee threat -->
|
||||
<li Class="JobGiver_ReactToCloseMeleeThreat"/>
|
||||
|
||||
<!-- Do a queued job -->
|
||||
<li Class="ThinkNode_QueuedJob"/>
|
||||
|
||||
@@ -2303,8 +2297,8 @@
|
||||
<subNodes>
|
||||
<!-- Wild insects with no lord will fight nearby enemies -->
|
||||
<li Class="JobGiver_AIFightEnemies">
|
||||
<targetAcquireRadius>100</targetAcquireRadius> <!-- Same as DefendAndExpandHive -->
|
||||
<targetKeepRadius>100</targetKeepRadius>
|
||||
<targetAcquireRadius>30</targetAcquireRadius>
|
||||
<targetKeepRadius>35</targetKeepRadius>
|
||||
</li>
|
||||
|
||||
<!-- Wild insects leave map in some conditions -->
|
||||
@@ -2365,9 +2359,11 @@
|
||||
<subNodes>
|
||||
<li Class="ArachnaeSwarm.ThinkNode_ConditionalNotProducedByMechCarrier">
|
||||
<subNodes>
|
||||
<!-- React to close melee threat -->
|
||||
<li Class="JobGiver_ReactToCloseMeleeThreat"/>
|
||||
<li Class="JobGiver_AIFightEnemies">
|
||||
<targetAcquireRadius>100</targetAcquireRadius>
|
||||
<targetKeepRadius>100</targetKeepRadius>
|
||||
<targetAcquireRadius>30</targetAcquireRadius>
|
||||
<targetKeepRadius>35</targetKeepRadius>
|
||||
</li>
|
||||
<li Class="JobGiver_AITrashColonyClose" />
|
||||
<li Class="JobGiver_AITrashBuildingsDistant" />
|
||||
@@ -2540,9 +2536,6 @@
|
||||
<treeDef>MentalStateCritical</treeDef>
|
||||
</li>
|
||||
|
||||
<!-- React to close melee threat -->
|
||||
<li Class="JobGiver_ReactToCloseMeleeThreat"/>
|
||||
|
||||
<!-- Do a queued job -->
|
||||
<li Class="ThinkNode_QueuedJob"/>
|
||||
|
||||
@@ -2640,9 +2633,11 @@
|
||||
<subNodes>
|
||||
<li Class="ArachnaeSwarm.ThinkNode_ConditionalNotProducedByMechCarrier">
|
||||
<subNodes>
|
||||
<!-- React to close melee threat -->
|
||||
<li Class="JobGiver_ReactToCloseMeleeThreat"/>
|
||||
<li Class="JobGiver_AIFightEnemies">
|
||||
<targetAcquireRadius>100</targetAcquireRadius>
|
||||
<targetKeepRadius>100</targetKeepRadius>
|
||||
<targetAcquireRadius>30</targetAcquireRadius>
|
||||
<targetKeepRadius>35</targetKeepRadius>
|
||||
</li>
|
||||
<li Class="JobGiver_AITrashColonyClose" />
|
||||
<li Class="JobGiver_AITrashBuildingsDistant" />
|
||||
@@ -2815,11 +2810,6 @@
|
||||
<treeDef>MentalStateCritical</treeDef>
|
||||
</li>
|
||||
|
||||
<!-- React to close melee threat -->
|
||||
<li Class="JobGiver_ReactToCloseMeleeThreat">
|
||||
<maxDistance>2.9</maxDistance>
|
||||
</li>
|
||||
|
||||
<!-- Do a queued job -->
|
||||
<li Class="ThinkNode_QueuedJob"/>
|
||||
|
||||
|
||||
Binary file not shown.
@@ -3,35 +3,55 @@
|
||||
"WorkspaceRootPath": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\",
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\buildings\\building_ootheca\\building_ootheca.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\buildings\\building_ootheca\\building_ootheca.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_ootheca\\building_ootheca.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\hediffs\\ara_configurablemutant\\necrotictransformationutility.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_configurablemutant\\necrotictransformationutility.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\\comprefuelablenutrition.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:building_comps\\comprefuelablenutrition.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_nodeswarmlifetime\\compnodeswarmlifetime.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_nodeswarmlifetime\\compnodeswarmlifetime.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_productstorage\\compproperties_productstorage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:building_comps\\ara_productstorage\\compproperties_productstorage.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\\gizmo_queuedincubationprogress.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_ootheca\\gizmo_queuedincubationprogress.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\\compinteractiveproducer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:building_comps\\ara_compinteractiveproducer\\compinteractiveproducer.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\\gizmo_pawnprogressbar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\abilities\\compabilityeffect_transformcorpse.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\compabilityeffect_transformcorpse.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_followproducer\\thinknode_conditionalnotproducedbymechcarrier.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_followproducer\\thinknode_conditionalnotproducedbymechcarrier.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\\gizmo_pawnprogressbar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_ootheca\\gizmo_pawnprogressbar.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\\gizmo_neutronflux.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\\gizmo_neutronflux.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_ootheca\\gizmo_neutronflux.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}",
|
||||
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\hediffs\\ara_configurablemutant\\necrotictransformationutility.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_configurablemutant\\necrotictransformationutility.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_nodeswarmlifetime\\compnodeswarmlifetime.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_nodeswarmlifetime\\compnodeswarmlifetime.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\\gizmo_queuedincubationprogress.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_ootheca\\gizmo_queuedincubationprogress.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\\buildings\\building_corpsevat\\building_corpsevat.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_corpsevat\\building_corpsevat.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_corpsevat\\building_corpsevat.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
@@ -76,9 +96,91 @@
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": 6,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
"Title": "CompRefuelableNutrition.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\CompRefuelableNutrition.cs",
|
||||
"RelativeDocumentMoniker": "Building_Comps\\CompRefuelableNutrition.cs",
|
||||
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\CompRefuelableNutrition.cs",
|
||||
"RelativeToolTip": "Building_Comps\\CompRefuelableNutrition.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAyAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-27T03:51:40.77Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 2,
|
||||
"Title": "CompProperties_ProductStorage.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_ProductStorage\\CompProperties_ProductStorage.cs",
|
||||
"RelativeDocumentMoniker": "Building_Comps\\ARA_ProductStorage\\CompProperties_ProductStorage.cs",
|
||||
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_ProductStorage\\CompProperties_ProductStorage.cs",
|
||||
"RelativeToolTip": "Building_Comps\\ARA_ProductStorage\\CompProperties_ProductStorage.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAUAAABKAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-27T03:51:33.86Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 3,
|
||||
"Title": "CompInteractiveProducer.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_CompInteractiveProducer\\CompInteractiveProducer.cs",
|
||||
"RelativeDocumentMoniker": "Building_Comps\\ARA_CompInteractiveProducer\\CompInteractiveProducer.cs",
|
||||
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_CompInteractiveProducer\\CompInteractiveProducer.cs",
|
||||
"RelativeToolTip": "Building_Comps\\ARA_CompInteractiveProducer\\CompInteractiveProducer.cs",
|
||||
"ViewState": "AgIAAFICAAAAAAAAAAAAAFICAAAtAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-27T03:51:32.573Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 4,
|
||||
"Title": "CompAbilityEffect_TransformCorpse.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\CompAbilityEffect_TransformCorpse.cs",
|
||||
"RelativeDocumentMoniker": "Abilities\\CompAbilityEffect_TransformCorpse.cs",
|
||||
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\CompAbilityEffect_TransformCorpse.cs",
|
||||
"RelativeToolTip": "Abilities\\CompAbilityEffect_TransformCorpse.cs",
|
||||
"ViewState": "AgIAAFQAAAAAAAAAAAAuwGkAAABdAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-27T03:51:29.604Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 5,
|
||||
"Title": "ThinkNode_ConditionalNotProducedByMechCarrier.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FollowProducer\\ThinkNode_ConditionalNotProducedByMechCarrier.cs",
|
||||
"RelativeDocumentMoniker": "Jobs\\JobDriver_FollowProducer\\ThinkNode_ConditionalNotProducedByMechCarrier.cs",
|
||||
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FollowProducer\\ThinkNode_ConditionalNotProducedByMechCarrier.cs",
|
||||
"RelativeToolTip": "Jobs\\JobDriver_FollowProducer\\ThinkNode_ConditionalNotProducedByMechCarrier.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAABQAAAAIAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-27T00:51:15.459Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "Building_Ootheca.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\Building_Ootheca.cs",
|
||||
"RelativeDocumentMoniker": "Buildings\\Building_Ootheca\\Building_Ootheca.cs",
|
||||
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\Building_Ootheca.cs",
|
||||
"RelativeToolTip": "Buildings\\Building_Ootheca\\Building_Ootheca.cs",
|
||||
"ViewState": "AgIAABwCAAAAAAAAAAAvwDICAAAJAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-23T08:31:14.555Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 8,
|
||||
"Title": "NecroticTransformationUtility.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_ConfigurableMutant\\NecroticTransformationUtility.cs",
|
||||
"RelativeDocumentMoniker": "Hediffs\\ARA_ConfigurableMutant\\NecroticTransformationUtility.cs",
|
||||
@@ -86,12 +188,11 @@
|
||||
"RelativeToolTip": "Hediffs\\ARA_ConfigurableMutant\\NecroticTransformationUtility.cs",
|
||||
"ViewState": "AgIAAA8AAAAAAAAAAAAtwCIAAAAcAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-26T08:44:42.184Z",
|
||||
"EditorCaption": ""
|
||||
"WhenOpened": "2026-01-26T08:44:42.184Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 2,
|
||||
"DocumentIndex": 9,
|
||||
"Title": "CompNodeSwarmLifetime.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_NodeSwarmLifetime\\CompNodeSwarmLifetime.cs",
|
||||
"RelativeDocumentMoniker": "Pawn_Comps\\ARA_NodeSwarmLifetime\\CompNodeSwarmLifetime.cs",
|
||||
@@ -99,12 +200,11 @@
|
||||
"RelativeToolTip": "Pawn_Comps\\ARA_NodeSwarmLifetime\\CompNodeSwarmLifetime.cs",
|
||||
"ViewState": "AgIAADYAAAAAAAAAAAAtwEoAAAAbAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-26T08:44:35.266Z",
|
||||
"EditorCaption": ""
|
||||
"WhenOpened": "2026-01-26T08:44:35.266Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 3,
|
||||
"DocumentIndex": 10,
|
||||
"Title": "Gizmo_QueuedIncubationProgress.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\Gizmo_QueuedIncubationProgress.cs",
|
||||
"RelativeDocumentMoniker": "Buildings\\Building_Ootheca\\Gizmo_QueuedIncubationProgress.cs",
|
||||
@@ -112,29 +212,24 @@
|
||||
"RelativeToolTip": "Buildings\\Building_Ootheca\\Gizmo_QueuedIncubationProgress.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAAAuAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-26T08:11:04.23Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
|
||||
"WhenOpened": "2026-01-26T08:11:04.23Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 4,
|
||||
"DocumentIndex": 6,
|
||||
"Title": "Gizmo_PawnProgressBar.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\Gizmo_PawnProgressBar.cs",
|
||||
"RelativeDocumentMoniker": "Buildings\\Building_Ootheca\\Gizmo_PawnProgressBar.cs",
|
||||
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\Gizmo_PawnProgressBar.cs",
|
||||
"RelativeToolTip": "Buildings\\Building_Ootheca\\Gizmo_PawnProgressBar.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAmAAAAAAAAAA==",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAwAAAAFAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-26T08:12:03.772Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 5,
|
||||
"DocumentIndex": 7,
|
||||
"Title": "Gizmo_NeutronFlux.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\Gizmo_NeutronFlux.cs",
|
||||
"RelativeDocumentMoniker": "Buildings\\Building_Ootheca\\Gizmo_NeutronFlux.cs",
|
||||
@@ -147,20 +242,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "Building_Ootheca.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\Building_Ootheca.cs",
|
||||
"RelativeDocumentMoniker": "Buildings\\Building_Ootheca\\Building_Ootheca.cs",
|
||||
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\Building_Ootheca.cs",
|
||||
"RelativeToolTip": "Buildings\\Building_Ootheca\\Building_Ootheca.cs",
|
||||
"ViewState": "AgIAABEBAAAAAAAAAAAswCoBAAAkAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-23T08:31:14.555Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 6,
|
||||
"DocumentIndex": 11,
|
||||
"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",
|
||||
@@ -168,12 +250,11 @@
|
||||
"RelativeToolTip": "Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs",
|
||||
"ViewState": "AgIAAEIBAAAAAAAAAAAAAEMBAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-26T07:52:41.869Z",
|
||||
"EditorCaption": ""
|
||||
"WhenOpened": "2026-01-26T07:52:41.869Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 7,
|
||||
"DocumentIndex": 12,
|
||||
"Title": "Building_CorpseVat.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_CorpseVat\\Building_CorpseVat.cs",
|
||||
"RelativeDocumentMoniker": "Buildings\\Building_CorpseVat\\Building_CorpseVat.cs",
|
||||
@@ -181,12 +262,11 @@
|
||||
"RelativeToolTip": "Buildings\\Building_CorpseVat\\Building_CorpseVat.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAASAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-23T10:24:46.264Z",
|
||||
"EditorCaption": ""
|
||||
"WhenOpened": "2026-01-23T10:24:46.264Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 9,
|
||||
"DocumentIndex": 14,
|
||||
"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",
|
||||
@@ -198,7 +278,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 11,
|
||||
"DocumentIndex": 16,
|
||||
"Title": "Hediff_Possession.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_HuggingFace\\Hediff_Possession.cs",
|
||||
"RelativeDocumentMoniker": "Abilities\\ARA_HuggingFace\\Hediff_Possession.cs",
|
||||
@@ -210,7 +290,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 12,
|
||||
"DocumentIndex": 17,
|
||||
"Title": "CompAbilityEffect_Possess.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_HuggingFace\\CompAbilityEffect_Possess.cs",
|
||||
"RelativeDocumentMoniker": "Abilities\\ARA_HuggingFace\\CompAbilityEffect_Possess.cs",
|
||||
@@ -222,7 +302,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 8,
|
||||
"DocumentIndex": 13,
|
||||
"Title": "CorpseVatExtension.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_CorpseVat\\CorpseVatExtension.cs",
|
||||
"RelativeDocumentMoniker": "Buildings\\Building_CorpseVat\\CorpseVatExtension.cs",
|
||||
@@ -234,7 +314,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 13,
|
||||
"DocumentIndex": 18,
|
||||
"Title": "CompDelayedTerrainSpawn.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_BuildingTerrainSpawn\\CompDelayedTerrainSpawn.cs",
|
||||
"RelativeDocumentMoniker": "Building_Comps\\ARA_BuildingTerrainSpawn\\CompDelayedTerrainSpawn.cs",
|
||||
@@ -246,7 +326,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 14,
|
||||
"DocumentIndex": 19,
|
||||
"Title": "CompProperties_HediffTerrainSpawn.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HediffTerrainSpawn\\CompProperties_HediffTerrainSpawn.cs",
|
||||
"RelativeDocumentMoniker": "Hediffs\\ARA_HediffTerrainSpawn\\CompProperties_HediffTerrainSpawn.cs",
|
||||
@@ -258,7 +338,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 10,
|
||||
"DocumentIndex": 15,
|
||||
"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",
|
||||
@@ -270,7 +350,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 15,
|
||||
"DocumentIndex": 20,
|
||||
"Title": "CompHediffTerrainSpawn.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HediffTerrainSpawn\\CompHediffTerrainSpawn.cs",
|
||||
"RelativeDocumentMoniker": "Hediffs\\ARA_HediffTerrainSpawn\\CompHediffTerrainSpawn.cs",
|
||||
|
||||
@@ -561,6 +561,7 @@ namespace ArachnaeSwarm
|
||||
}
|
||||
public override IEnumerable<Gizmo> GetGizmos()
|
||||
{
|
||||
base.GetGizmos();
|
||||
// 首先获取选中的同类建筑
|
||||
var selectedOothecas = GetSelectedOothecas();
|
||||
bool isMultiSelect = selectedOothecas.Count > 1;
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
// 修改 Gizmo_PawnProgressBar.cs
|
||||
using RimWorld;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using Verse;
|
||||
|
||||
@@ -9,7 +7,6 @@ namespace ArachnaeSwarm
|
||||
{
|
||||
/// <summary>
|
||||
/// 统一的双向进度条 Gizmo - 用于所有孵化建筑/组件
|
||||
/// 支持多选显示
|
||||
/// </summary>
|
||||
[StaticConstructorOnStartup]
|
||||
public class Gizmo_PawnProgressBar : Gizmo
|
||||
@@ -25,219 +22,16 @@ namespace ArachnaeSwarm
|
||||
private static readonly Texture2D EmptyBarTex = SolidColorMaterials.NewSolidColorTexture(new Color(0.1f, 0.1f, 0.1f, 0.5f));
|
||||
|
||||
private readonly IOrderGizmoProvider provider;
|
||||
private readonly Thing parentThing;
|
||||
|
||||
// 多选相关
|
||||
private bool isMultiSelect = false;
|
||||
private List<IOrderGizmoProvider> multiSelectProviders = new List<IOrderGizmoProvider>();
|
||||
|
||||
public Gizmo_PawnProgressBar(IOrderGizmoProvider provider)
|
||||
{
|
||||
this.provider = provider;
|
||||
this.parentThing = provider as Thing;
|
||||
this.Order = -140f;
|
||||
|
||||
// 检查是否是多个建筑被选中
|
||||
UpdateMultiSelectInfo();
|
||||
}
|
||||
|
||||
private void UpdateMultiSelectInfo()
|
||||
{
|
||||
if (Find.Selector == null || parentThing == null)
|
||||
return;
|
||||
|
||||
// 获取选中的同类建筑
|
||||
var selectedThings = Find.Selector.SelectedObjects
|
||||
.Where(obj => obj is Thing thing &&
|
||||
thing.def == parentThing.def &&
|
||||
thing.Faction == Faction.OfPlayer)
|
||||
.ToList();
|
||||
|
||||
isMultiSelect = selectedThings.Count > 1;
|
||||
|
||||
if (isMultiSelect)
|
||||
{
|
||||
multiSelectProviders.Clear();
|
||||
foreach (var thing in selectedThings)
|
||||
{
|
||||
if (thing is IOrderGizmoProvider provider)
|
||||
{
|
||||
multiSelectProviders.Add(provider);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetWidth(float maxWidth) => Mathf.Min(Width, maxWidth);
|
||||
|
||||
public override GizmoResult GizmoOnGUI(Vector2 topLeft, float maxWidth, GizmoRenderParms parms)
|
||||
{
|
||||
// 更新多选信息
|
||||
UpdateMultiSelectInfo();
|
||||
|
||||
if (isMultiSelect)
|
||||
{
|
||||
return DrawMultiSelectGizmo(topLeft, maxWidth);
|
||||
}
|
||||
else
|
||||
{
|
||||
return DrawSingleSelectGizmo(topLeft, maxWidth);
|
||||
}
|
||||
}
|
||||
|
||||
private GizmoResult DrawMultiSelectGizmo(Vector2 topLeft, float maxWidth)
|
||||
{
|
||||
// 计算显示多少个建筑的进度
|
||||
int displayCount = Mathf.Min(multiSelectProviders.Count, 4); // 最多显示4个
|
||||
|
||||
// 计算高度
|
||||
float contentHeight = Padding * 2 + Text.LineHeight + Spacing; // 标题
|
||||
contentHeight += displayCount * (BarHeight + Spacing + 14f); // 每个建筑的进度条
|
||||
float totalHeight = Mathf.Max(75f, contentHeight);
|
||||
|
||||
Rect rect = new Rect(topLeft.x, topLeft.y - (totalHeight - 75f), GetWidth(maxWidth), totalHeight);
|
||||
Widgets.DrawWindowBackground(rect);
|
||||
|
||||
Rect innerRect = rect.ContractedBy(Padding);
|
||||
float curY = innerRect.y;
|
||||
|
||||
// === 多选标题区域 ===
|
||||
Text.Font = GameFont.Small;
|
||||
Rect titleRect = new Rect(innerRect.x, curY, innerRect.width, Text.LineHeight);
|
||||
|
||||
string title = "ARA_Gizmo_MultiSelectTitle".Translate(multiSelectProviders.Count);
|
||||
GUI.color = new Color(0.7f, 0.9f, 1f);
|
||||
Widgets.Label(titleRect, title);
|
||||
GUI.color = Color.white;
|
||||
|
||||
curY += Text.LineHeight + Spacing;
|
||||
|
||||
// === 显示每个建筑的进度 ===
|
||||
for (int i = 0; i < displayCount; i++)
|
||||
{
|
||||
var currentProvider = multiSelectProviders[i];
|
||||
var orders = currentProvider.GetOrdersForGizmo();
|
||||
|
||||
if (orders.Count > 0)
|
||||
{
|
||||
// 建筑标签
|
||||
Text.Font = GameFont.Tiny;
|
||||
Rect buildingLabelRect = new Rect(innerRect.x, curY, innerRect.width, 12f);
|
||||
string buildingLabel = $"{i+1}. {(currentProvider as Thing)?.LabelCap ?? "Unknown"}";
|
||||
Widgets.Label(buildingLabelRect, buildingLabel);
|
||||
curY += 12f;
|
||||
|
||||
// 显示第一个订单
|
||||
var order = orders[0];
|
||||
Rect orderRect = new Rect(innerRect.x, curY, innerRect.width, BarHeight + 14f);
|
||||
DrawMultiSelectOrderItem(orderRect, order, currentProvider, i);
|
||||
curY += BarHeight + 14f + Spacing;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 无订单状态
|
||||
Text.Font = GameFont.Tiny;
|
||||
Rect emptyRect = new Rect(innerRect.x, curY, innerRect.width, 20f);
|
||||
GUI.color = new Color(0.7f, 0.7f, 0.7f);
|
||||
Widgets.Label(emptyRect, "ARA_Status_Empty".Translate());
|
||||
GUI.color = Color.white;
|
||||
curY += 20f + Spacing;
|
||||
}
|
||||
|
||||
// 添加分隔线
|
||||
if (i < displayCount - 1)
|
||||
{
|
||||
Widgets.DrawLineHorizontal(innerRect.x, curY - Spacing/2, innerRect.width);
|
||||
curY += 2f;
|
||||
}
|
||||
}
|
||||
|
||||
// 如果有更多建筑,显示提示
|
||||
if (multiSelectProviders.Count > displayCount)
|
||||
{
|
||||
Text.Font = GameFont.Tiny;
|
||||
Rect moreRect = new Rect(innerRect.x, curY, innerRect.width, 14f);
|
||||
GUI.color = new Color(0.5f, 0.5f, 0.5f);
|
||||
Widgets.Label(moreRect, "ARA_Gizmo_MoreBuildings".Translate(multiSelectProviders.Count - displayCount));
|
||||
GUI.color = Color.white;
|
||||
}
|
||||
|
||||
Text.Font = GameFont.Small;
|
||||
return new GizmoResult(GizmoState.Clear);
|
||||
}
|
||||
|
||||
private void DrawMultiSelectOrderItem(Rect rect, PawnOrderDisplayInfo order, IOrderGizmoProvider provider, int index)
|
||||
{
|
||||
float labelHeight = 14f;
|
||||
|
||||
// 标签行
|
||||
Text.Font = GameFont.Tiny;
|
||||
Rect labelRect = new Rect(rect.x, rect.y, rect.width - 20f, labelHeight);
|
||||
|
||||
GUI.color = Color.white;
|
||||
Widgets.Label(labelRect, $"{order.label} {order.progress.ToStringPercent("F0")}");
|
||||
|
||||
// 取消按钮(针对单个建筑)
|
||||
Rect cancelRect = new Rect(rect.xMax - 16f, rect.y, 16f, labelHeight);
|
||||
if (Widgets.ButtonText(cancelRect, "×", false))
|
||||
{
|
||||
provider.RemoveOrderByIndex(0);
|
||||
}
|
||||
|
||||
// 进度条
|
||||
Rect barRect = new Rect(rect.x, rect.y + labelHeight, rect.width, BarHeight);
|
||||
|
||||
if (order.status == OrderStatus.Incubating)
|
||||
{
|
||||
// 双向进度条:品质向左,进度向右
|
||||
float midX = barRect.x + barRect.width / 2f;
|
||||
float halfWidth = barRect.width / 2f;
|
||||
|
||||
// 背景
|
||||
GUI.DrawTexture(barRect, EmptyBarTex);
|
||||
|
||||
// 品质进度(向左)
|
||||
float qualityWidth = halfWidth * order.qualityProgress;
|
||||
Rect qualityRect = new Rect(midX - qualityWidth, barRect.y, qualityWidth, barRect.height);
|
||||
GUI.DrawTexture(qualityRect, QualityBarTex);
|
||||
|
||||
// 生产进度(向右)
|
||||
float progressWidth = halfWidth * order.progress;
|
||||
Rect progressRect = new Rect(midX, barRect.y, progressWidth, barRect.height);
|
||||
GUI.DrawTexture(progressRect, ProgressBarTex);
|
||||
|
||||
// 中线
|
||||
Widgets.DrawLineVertical(midX, barRect.y, barRect.height);
|
||||
|
||||
// 百分比文字
|
||||
Text.Font = GameFont.Tiny;
|
||||
Text.Anchor = TextAnchor.MiddleLeft;
|
||||
GUI.color = new Color(0.8f, 0.9f, 1f);
|
||||
Widgets.Label(new Rect(barRect.x + 2f, barRect.y, halfWidth - 4f, barRect.height),
|
||||
order.qualityProgress.ToStringPercent("F0"));
|
||||
|
||||
Text.Anchor = TextAnchor.MiddleRight;
|
||||
GUI.color = new Color(0.8f, 1f, 0.8f);
|
||||
Widgets.Label(new Rect(midX + 2f, barRect.y, halfWidth - 4f, barRect.height),
|
||||
order.progress.ToStringPercent("F0"));
|
||||
|
||||
Text.Anchor = TextAnchor.UpperLeft;
|
||||
GUI.color = Color.white;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 等待幼虫状态:显示等待指示
|
||||
GUI.DrawTexture(barRect, EmptyBarTex);
|
||||
Text.Font = GameFont.Tiny;
|
||||
Text.Anchor = TextAnchor.MiddleCenter;
|
||||
GUI.color = new Color(0.8f, 0.6f, 0.2f);
|
||||
Widgets.Label(barRect, "ARA_Status_WaitingForLarva".Translate());
|
||||
GUI.color = Color.white;
|
||||
Text.Anchor = TextAnchor.UpperLeft;
|
||||
}
|
||||
}
|
||||
|
||||
private GizmoResult DrawSingleSelectGizmo(Vector2 topLeft, float maxWidth)
|
||||
{
|
||||
var orders = provider.GetOrdersForGizmo();
|
||||
int orderCount = orders.Count;
|
||||
@@ -257,10 +51,10 @@ namespace ArachnaeSwarm
|
||||
// === 标题区域(可点击打开菜单) ===
|
||||
Text.Font = GameFont.Small;
|
||||
Rect titleRect = new Rect(innerRect.x, curY, innerRect.width, Text.LineHeight);
|
||||
|
||||
|
||||
string title;
|
||||
bool canAdd = orderCount < provider.QueueLimit;
|
||||
|
||||
|
||||
if (orderCount > 0)
|
||||
{
|
||||
// 显示第一个订单名称
|
||||
@@ -279,12 +73,12 @@ namespace ArachnaeSwarm
|
||||
{
|
||||
Widgets.DrawHighlight(titleRect);
|
||||
}
|
||||
|
||||
|
||||
if (Widgets.ButtonInvisible(titleRect))
|
||||
{
|
||||
provider.ShowOrderMenu();
|
||||
}
|
||||
|
||||
|
||||
// 带下拉箭头的标题
|
||||
GUI.color = new Color(0.7f, 0.9f, 1f);
|
||||
Widgets.Label(titleRect, title.Truncate(titleRect.width - 20f) + " ▼");
|
||||
@@ -305,18 +99,18 @@ namespace ArachnaeSwarm
|
||||
float listHeight = Mathf.Min(visibleCount, orderCount) * itemHeight;
|
||||
float totalContentHeight = orderCount * itemHeight;
|
||||
bool needsScrollbar = orderCount > MaxVisibleOrders;
|
||||
|
||||
|
||||
float scrollbarWidth = needsScrollbar ? 12f : 0f;
|
||||
Rect listRect = new Rect(innerRect.x, curY, innerRect.width - scrollbarWidth, listHeight);
|
||||
Rect viewRect = new Rect(0, 0, listRect.width, totalContentHeight);
|
||||
|
||||
|
||||
// 滚动条区域
|
||||
if (needsScrollbar)
|
||||
{
|
||||
Rect scrollbarRect = new Rect(innerRect.xMax - scrollbarWidth, curY, scrollbarWidth, listHeight);
|
||||
float scrollMax = totalContentHeight - listHeight;
|
||||
provider.GizmoScrollPosition = GUI.VerticalScrollbar(scrollbarRect, provider.GizmoScrollPosition, listHeight, 0f, totalContentHeight);
|
||||
|
||||
|
||||
// 也支持滚轮
|
||||
if (Mouse.IsOver(listRect))
|
||||
{
|
||||
@@ -332,7 +126,7 @@ namespace ArachnaeSwarm
|
||||
{
|
||||
var order = orders[i];
|
||||
Rect itemRect = new Rect(0, drawY, listRect.width, itemHeight - Spacing);
|
||||
|
||||
|
||||
if (itemRect.yMax > 0 && itemRect.y < listRect.height)
|
||||
{
|
||||
DrawOrderItem(itemRect, order, i);
|
||||
@@ -358,11 +152,11 @@ namespace ArachnaeSwarm
|
||||
private void DrawOrderItem(Rect rect, PawnOrderDisplayInfo order, int index)
|
||||
{
|
||||
float labelHeight = 14f;
|
||||
|
||||
|
||||
// 标签行
|
||||
Text.Font = GameFont.Tiny;
|
||||
Rect labelRect = new Rect(rect.x, rect.y, rect.width - 20f, labelHeight);
|
||||
|
||||
|
||||
if (order.status == OrderStatus.WaitingForLarva)
|
||||
{
|
||||
// 整个标签区域可点击呼叫幼虫
|
||||
@@ -370,12 +164,12 @@ namespace ArachnaeSwarm
|
||||
{
|
||||
Widgets.DrawHighlight(labelRect);
|
||||
}
|
||||
|
||||
|
||||
if (Widgets.ButtonInvisible(labelRect))
|
||||
{
|
||||
provider.CallLarvaForGizmo();
|
||||
}
|
||||
|
||||
|
||||
GUI.color = new Color(1f, 0.8f, 0.4f);
|
||||
Widgets.Label(labelRect, $"{order.label} [" + "ARA_Status_WaitingForLarva".Translate() + "]");
|
||||
}
|
||||
@@ -395,7 +189,7 @@ namespace ArachnaeSwarm
|
||||
|
||||
// 进度条
|
||||
Rect barRect = new Rect(rect.x, rect.y + labelHeight, rect.width, BarHeight);
|
||||
|
||||
|
||||
if (order.status == OrderStatus.Incubating)
|
||||
{
|
||||
// 双向进度条:品质向左,进度向右
|
||||
@@ -417,24 +211,24 @@ namespace ArachnaeSwarm
|
||||
|
||||
// 中线
|
||||
Widgets.DrawLineVertical(midX, barRect.y, barRect.height);
|
||||
|
||||
|
||||
// 百分比文字(在进度条内部)
|
||||
Text.Font = GameFont.Tiny;
|
||||
Text.Anchor = TextAnchor.MiddleLeft;
|
||||
GUI.color = new Color(0.8f, 0.9f, 1f);
|
||||
Widgets.Label(new Rect(barRect.x + 2f, barRect.y, halfWidth - 4f, barRect.height),
|
||||
Widgets.Label(new Rect(barRect.x + 2f, barRect.y, halfWidth - 4f, barRect.height),
|
||||
order.qualityProgress.ToStringPercent("F0"));
|
||||
|
||||
|
||||
Text.Anchor = TextAnchor.MiddleRight;
|
||||
GUI.color = new Color(0.8f, 1f, 0.8f);
|
||||
Widgets.Label(new Rect(midX + 2f, barRect.y, halfWidth - 4f, barRect.height),
|
||||
Widgets.Label(new Rect(midX + 2f, barRect.y, halfWidth - 4f, barRect.height),
|
||||
order.progress.ToStringPercent("F0"));
|
||||
|
||||
|
||||
Text.Anchor = TextAnchor.UpperLeft;
|
||||
GUI.color = Color.white;
|
||||
|
||||
// Tooltip
|
||||
string tooltip = $"{order.label}\n" +
|
||||
string tooltip = $"{order.label}\n" +
|
||||
"ARA_Tooltip_Quality".Translate(order.qualityProgress.ToStringPercent(), order.estimatedQuality) + "\n" +
|
||||
"ARA_Tooltip_Progress".Translate(order.progress.ToStringPercent()) + "\n" +
|
||||
"ARA_Tooltip_Remaining".Translate(order.remainingTime);
|
||||
|
||||
@@ -14,17 +14,14 @@ namespace ArachnaeSwarm
|
||||
private bool checkProducerAlive = true;
|
||||
|
||||
// 可选:是否检查生产者是否在同一地图
|
||||
private bool checkSameMap = true;
|
||||
private bool checkSameMap = false;
|
||||
|
||||
// 可选:是否检查生产者是否可到达
|
||||
private bool checkReachable = true;
|
||||
private bool checkReachable = false;
|
||||
|
||||
// 可选:是否检查生产者类型(pawn必须征召才跟随)
|
||||
private bool checkProducerTypeConditions = true;
|
||||
|
||||
// 可选:额外条件类(可以通过XML添加额外条件)
|
||||
public string extraConditionClass;
|
||||
|
||||
public ThinkNode_ConditionalNotProducedByMechCarrier()
|
||||
{
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user