This commit is contained in:
2025-10-22 17:30:39 +08:00
parent 5df900f094
commit 82f8ddce61
11 changed files with 336 additions and 532 deletions

Binary file not shown.

View File

@@ -1024,7 +1024,7 @@
</li>
</comps>
</AbilityDef>
<AbilityDef>
<!-- <AbilityDef>
<defName>ARA_Genestealer_Variation</defName>
<label>虫化变异</label>
<description>畸变种指定一个非虫群成员的殖民者、囚犯或奴隶,诱发目标的虫族化变异,使殖民者获得任意的虫族身体部件,这会降低其魅力。</description>
@@ -1086,27 +1086,17 @@
<requiredResearchProject>ARA_Technology_5KYC</requiredResearchProject>
<severity>1</severity>
</li>
<li>
<hediffDef>ARA_HiveMindMaster</hediffDef>
<weight>0</weight>
<severity>1</severity>
</li>
<li>
<hediffDef>ARA_HiveMindDrone</hediffDef>
<weight>0</weight>
<severity>1</severity>
</li>
<li>
<hediffDef>ARA_NonPlayer_HiveMindDroneHediff</hediffDef>
<weight>0</weight>
<severity>1</severity>
</li>
</hediffEntries>
<allowMultipleHediffs>false</allowMultipleHediffs>
<resistChance>0</resistChance>
<blacklistHediffs>
<li>ARA_HiveMindMaster</li>
<li>ARA_HiveMindDrone</li>
<li>ARA_NonPlayer_HiveMindDroneHediff</li>
</blacklistHediffs>
</li>
</comps>
</AbilityDef>
</AbilityDef> -->
<!-- 衣服 -->
<AbilityDef>

View File

@@ -820,7 +820,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>
@@ -865,8 +865,8 @@
</skillChanges>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityResearchPrereq">
<requiredResearch>ARA_Technology_4CLO</requiredResearch>
<failMessage>需要科技 节点CLO-4"追猎种" 以解锁进化</failMessage>
<requiredResearch>ARA_Technology_5STL</requiredResearch>
<failMessage>需要科技 节点STL-5"基因窃取" 以解锁进化</failMessage>
</li>
</comps>
</AbilityDef>
@@ -874,7 +874,7 @@
<defName>ARA_Fighter_Genestealer</defName>
<hediffClass>HediffWithComps</hediffClass>
<label>亚种-畸变种</label>
<description>畸变种是移动的基因库,她们在虫群中不再担任刀间舔血的工作,而是专注于提纯囚犯和奴隶的优质基因,并将其赋予虫族中的高质量个体。她们也拥有引发非虫族殖民者器官虫族化的能力,以使得那些没有用处的异族能那么稍微对虫巢做出一些贡献。</description>
<description>畸变种是移动的基因库,她们在虫群中不再担任刀间舔血的工作,而是专注于提纯囚犯和奴隶的优质基因,并将其赋予虫族中的高质量个体。</description>
<isBad>false</isBad>
<stages>
</stages>
@@ -883,7 +883,7 @@
<abilityDefs>
<li>ARA_Genestealer_ExtractGene</li>
<li>ARA_Genestealer_InjectGenes</li>
<li>ARA_Genestealer_Variation</li>
<!-- <li>ARA_Genestealer_Variation</li> -->
</abilityDefs>
</li>
<li Class="HediffCompProperties_DisappearsOnDeath" />

View File

@@ -28,9 +28,6 @@
<texSeed>1</texSeed>
</li>
</renderNodeProperties>
<addedPartProps>
<solid>true</solid>
</addedPartProps>
<comps>
<li Class="HediffCompProperties_VerbGiver">
<tools>
@@ -62,29 +59,8 @@
<hungerRateFactorOffset>2</hungerRateFactorOffset>
<statOffsets>
<PawnBeauty>-1</PawnBeauty>
<MoveSpeed>-2</MoveSpeed>
</statOffsets>
<capMods>
<li>
<capacity>Consciousness</capacity>
<offset>-0.20</offset>
</li>
<li>
<capacity>Moving</capacity>
<offset>-0.50</offset>
</li>
<li>
<capacity>Sight</capacity>
<offset>-0.20</offset>
</li>
<li>
<capacity>BloodPumping</capacity>
<offset>-0.20</offset>
</li>
<li>
<capacity>Manipulation</capacity>
<offset>-0.20</offset>
</li>
</capMods>
</li>
</stages>
<renderNodeProperties>
@@ -98,7 +74,7 @@
<texSeed>1</texSeed>
<drawData>
<dataNorth>
<layer>70</layer>
<layer>150</layer>
</dataNorth>
<dataSouth>
<layer>0</layer>
@@ -112,9 +88,6 @@
</drawData>
</li>
</renderNodeProperties>
<addedPartProps>
<solid>true</solid>
</addedPartProps>
<comps>
<li Class="ArachnaeSwarm.MoharHediffs.HediffCompProperties_Spawner">
<!--
@@ -190,9 +163,6 @@
</drawData>
</li>
</renderNodeProperties>
<addedPartProps>
<solid>true</solid>
</addedPartProps>
<comps>
<li Class="HediffCompProperties_GiveAbility">
<abilityDefs>
@@ -247,9 +217,6 @@
</statOffsets>
</li>
</stages>
<addedPartProps>
<solid>true</solid>
</addedPartProps>
</HediffDef>
<HediffDef ParentName="ARA_AddedMutationBase">
<defName>ArachnaeNode_Race_ShieldHead_Armor_Part</defName>

View File

@@ -1,32 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<RecipeDef Abstract="True" Name="ARA_SurgeryInstallImplantBase">
<effectWorking>Surgery</effectWorking>
<soundWorking>Recipe_Surgery</soundWorking>
<workSpeedStat>MedicalOperationSpeed</workSpeedStat>
<workSkill>Medicine</workSkill>
<workSkillLearnFactor>16</workSkillLearnFactor>
<surgeryOutcomeEffect>SurgeryOutcomeBase</surgeryOutcomeEffect>
<RecipeDef Abstract="True" Name="ARA_SurgeryInstallImplantBase" ParentName="SurgeryInstallBodyPartArtificialBase">
<workerClass>Recipe_InstallArtificialBodyPart</workerClass>
<!-- Always succeeds -->
<anesthetize>false</anesthetize>
<!-- <workerClass>Recipe_InstallArtificialBodyPart</workerClass> -->
<workAmount>2500</workAmount>
<!-- <developmentalStageFilter>Child, Adult</developmentalStageFilter> -->
<skillRequirements>
<Medicine>5</Medicine>
</skillRequirements>
<ingredients>
<li>
<filter><categories><li>Medicine</li></categories></filter>
<count>2</count>
</li>
</ingredients>
<fixedIngredientFilter>
<categories>
<li>Medicine</li>
</categories>
</fixedIngredientFilter>
</RecipeDef>
<ThingDef Abstract="True" Name="ARA_BodyPartProstheticBase" ParentName="BodyPartProstheticMakeableBase">
<graphicData>
@@ -253,6 +230,9 @@
<descriptionHyperlinks>
<RecipeDef>ARA_Surgery_Install_Reactive_Shell</RecipeDef>
</descriptionHyperlinks>
<addedPartProps>
<betterThanNatural>true</betterThanNatural>
</addedPartProps>
<isBad>false</isBad>
<debugLabelExtra>other</debugLabelExtra>
<initialSeverity>1</initialSeverity> <!-- 初始层数设置为10 -->
@@ -319,6 +299,9 @@
</statOffsets>
</li>
</stages>
<addedPartProps>
<betterThanNatural>true</betterThanNatural>
</addedPartProps>
<isBad>false</isBad>
<debugLabelExtra>other</debugLabelExtra>
<initialSeverity>1</initialSeverity> <!-- 初始层数设置为10 -->
@@ -547,15 +530,15 @@
<li>
<filter>
<thingDefs>
<li>ARA_InsectJelly</li>
<li>ARA_Gene_Essence</li>
</thingDefs>
</filter>
<count>25</count>
<count>10</count>
</li>
</ingredients>
<fixedIngredientFilter>
<thingDefs>
<li>ARA_Activated_Bacterium</li>
<li>ARA_Gene_Essence</li>
</thingDefs>
</fixedIngredientFilter>
<addsHediff>ARA_Huge_Stomach_Hediff</addsHediff>
@@ -591,7 +574,71 @@
<researchPrerequisite>ARA_Technology_1EVO</researchPrerequisite>
</recipeMaker>
<costList>
<ARA_InsectJelly>25</ARA_InsectJelly>
<ARA_Gene_Essence>10</ARA_Gene_Essence>
</costList>
</ThingDef>
<!-- 肺部 -->
<RecipeDef ParentName="ARA_SurgeryInstallImplantBase">
<defName>ARA_Surgery_Install_Internal_Circulation_Lung</defName>
<label>内循环肺</label>
<description>诱发阿拉克涅虫族的定向变异,使其肺部可以进行自循环,几乎可以抵御真空的侵袭。</description>
<descriptionHyperlinks>
<HediffDef>ARA_Internal_Circulation_Lung_Hediff</HediffDef>
</descriptionHyperlinks>
<jobString>正在实施定向变异</jobString>
<appliedOnFixedBodyParts>
<li>Lung</li>
</appliedOnFixedBodyParts>
<ingredients>
<li>
<filter>
<thingDefs>
<li>ARA_Gene_Essence</li>
</thingDefs>
</filter>
<count>10</count>
</li>
</ingredients>
<fixedIngredientFilter>
<thingDefs>
<li>ARA_Gene_Essence</li>
</thingDefs>
</fixedIngredientFilter>
<addsHediff>ARA_Internal_Circulation_Lung_Hediff</addsHediff>
<researchPrerequisite>ARA_Technology_10EVO</researchPrerequisite>
</RecipeDef>
<HediffDef ParentName="AddedBodyPartBase">
<defName>ARA_Internal_Circulation_Lung_Hediff</defName>
<label>内循环肺</label>
<hediffClass>Hediff_Implant</hediffClass>
<description>阿拉克涅虫族的定向变异使其肺部可以进行自循环,几乎可以抵御真空的侵袭。</description>
<descriptionHyperlinks>
<RecipeDef>ARA_Surgery_Install_Internal_Circulation_Lung</RecipeDef>
</descriptionHyperlinks>
<addedPartProps>
<betterThanNatural>true</betterThanNatural>
</addedPartProps>
<stages>
<li>
<statOffsets>
<VacuumResistance_Partial>0.99</VacuumResistance_Partial>
</statOffsets>
</li>
</stages>
</HediffDef>
<ThingDef ParentName="ARA_BodyPartProstheticBase">
<defName>ARA_Internal_Circulation_Lung</defName>
<label>内循环肺</label>
<description>阿拉克涅虫族的定向变异使其肺部可以进行自循环,几乎可以抵御真空的侵袭。该手术不需要制作部件,可以直接在阿拉克涅督虫身上实施。</description>
<descriptionHyperlinks>
<RecipeDef>ARA_Surgery_Install_Internal_Circulation_Lung</RecipeDef>
</descriptionHyperlinks>
<recipeMaker>
<researchPrerequisite>ARA_Technology_10EVO</researchPrerequisite>
</recipeMaker>
<costList>
<ARA_Gene_Essence>10</ARA_Gene_Essence>
</costList>
</ThingDef>

View File

@@ -593,7 +593,7 @@
<ResearchProjectDef ParentName="ARA_techBase_Needtechprint">
<defName>ARA_Technology_5STL</defName>
<label>节点STL-5"基因窃取"</label>
<description>允许战士种进行定向进化,抛弃其战斗技能以换取其从殖民者、囚犯和奴隶身上抽取和注入基因的能力,并且可以主动诱发非虫族殖民者的虫化变异。\n\n阿拉克涅虫群所有需要蓝图的科技其蓝图只能通过女皇种的基因试验卵获取。</description>
<description>允许战士种进行定向进化,抛弃其战斗技能以换取其从殖民者、囚犯和奴隶身上抽取和注入基因的能力。\n\n阿拉克涅虫群所有需要蓝图的科技其蓝图只能通过女皇种的基因试验卵获取。</description>
<baseCost>500</baseCost>
<researchViewX>2.00</researchViewX>
<researchViewY>5.40</researchViewY>
@@ -832,6 +832,21 @@
<li>ARA_Technology_2WMT</li>
</prerequisites>
</ResearchProjectDef>
<ResearchProjectDef ParentName="ARA_techBase">
<defName>ARA_Technology_10EVO</defName>
<label>节点EVO-10"高级肺"</label>
<description>允许实行新的阿拉克涅进化手术,允许阿拉克涅虫族获得更强大的肺部。</description>
<baseCost>1000</baseCost>
<researchViewX>11.00</researchViewX>
<researchViewY>3.80</researchViewY>
<requiredResearchBuilding>ARA_ResearchBench</requiredResearchBuilding> <!-- ARA_MorphableResearchBench-->
<hiddenPrerequisites>
<li>ARA_Technology_5ESS</li>
</hiddenPrerequisites>
<prerequisites>
<li>ARA_Technology_1WMT</li>
</prerequisites>
</ResearchProjectDef>
<!-- 共生肌群发展 -->
<ResearchProjectDef ParentName="ARA_techBase_Needtechprint">
<defName>ARA_Technology_2SYM</defName>

View File

@@ -18,6 +18,9 @@
<tickerType>Normal</tickerType>
<terrainAffordanceNeeded>Light</terrainAffordanceNeeded>
<minifiedDef>MinifiedThing</minifiedDef>
<generateCommonality>0</generateCommonality>
<tradeability>None</tradeability>
<thingSetMakerTags Inherit="False" />
<thingCategories>
<li>BuildingsMisc</li>
</thingCategories>
@@ -511,9 +514,15 @@
<drawSize>(3,3)</drawSize>
</graphicData>
<statBases>
<MarketValue>1200</MarketValue>
<MaxHitPoints>1500</MaxHitPoints>
<MarketValue>1500</MarketValue>
</statBases>
<size>(3,3)</size>
<generateCommonality>1</generateCommonality>
<tradeability>None</tradeability>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
<comps>
<li Class="CompProperties_Glower">

View File

@@ -115,4 +115,15 @@
<CasterHasNoTransferableGenes>{CASTER}没有可转移的基因</CasterHasNoTransferableGenes>
<TransferableGenesCount>可转移基因数: {0}</TransferableGenesCount>
<TargetHasGenesCount>目标已有: {0}</TargetHasGenesCount>
<ARA_AbilityReady>能力准备就绪</ARA_AbilityReady>
<ARA_SelectValidTarget>选择有效目标</ARA_SelectValidTarget>
<ARA_PossibleEffects>可能的效果:</ARA_PossibleEffects>
<ARA_ResistChance>抵抗几率:{0}</ARA_ResistChance>
<ARA_NoValidHediffAvailable>没有可用的虫化变异可以施加</ARA_NoValidHediffAvailable>
<ARA_HediffApplied>{0}使得{2}变异出了{1}</ARA_HediffApplied>
<ARA_PotentialHediffs>可能效果:{0}</ARA_PotentialHediffs>
<ARA_NoValidHediff>没有可用的虫化变异</ARA_NoValidHediff>
<ARA_TargetBlacklisted>目标是虫群的成员</ARA_TargetBlacklisted>
<ARA_TargetAlreadyHasHediff>目标已完成虫化变异</ARA_TargetAlreadyHasHediff>
</LanguageData>

View File

@@ -2,117 +2,9 @@
"Version": 1,
"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\\powerarmor\\comppowerarmorstation.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:powerarmor\\comppowerarmorstation.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\powerarmor\\jobdriver_enterpowerarmor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:powerarmor\\jobdriver_enterpowerarmor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\abilities\\compabilityeffect_randomhediff.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\compabilityeffect_randomhediff.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\abilities\\ara_genestealer\\compabilityeffect_injectgenes.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_genestealer\\compabilityeffect_injectgenes.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\abilities\\ara_genestealer\\compabilityeffect_extractgene.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_genestealer\\compabilityeffect_extractgene.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\abilities\\ara_genestealer\\compproperties_abilityinjectgenes.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_genestealer\\compproperties_abilityinjectgenes.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\verbs\\cleave\\verb_meleeattack_cleave.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:verbs\\cleave\\verb_meleeattack_cleave.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\hediffs\\ara_hivemind\\hediff_hiveminddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_hivemind\\hediff_hiveminddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\hediffs\\ara_hivemind\\hediffcomp_hiveminddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_hivemind\\hediffcomp_hiveminddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\hediffs\\ara_hivemind\\hediff_hivemindmaster.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_hivemind\\hediff_hivemindmaster.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\mentalstate\\mentalstate_hivemindcascade.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:mentalstate\\mentalstate_hivemindcascade.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_arachnidgravengine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_arachnidgravengine.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_incubatable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_incubatable.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_spawnpawnfromlist\\compspawnpawnfromlist.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:building_comps\\ara_spawnpawnfromlist\\compspawnpawnfromlist.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_spawnpawnfromlist\\compproperties_spawnpawnfromlist.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:building_comps\\ara_spawnpawnfromlist\\compproperties_spawnpawnfromlist.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\abilities\\ara_showspawnablepawnslist\\compabilityeffect_abilityshowspawnablepawns.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_showspawnablepawnslist\\compabilityeffect_abilityshowspawnablepawns.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\pawn_comps\\ara_uniquepawn\\patch_uniquepawn.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_uniquepawn\\patch_uniquepawn.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\pawn_comps\\ara_uniquepawn\\compuniquepawn.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_uniquepawn\\compuniquepawn.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\pawn_comps\\ara_uniquepawn\\compproperties_uniquepawn.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_uniquepawn\\compproperties_uniquepawn.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_turretgunhasspeed.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_turretgunhasspeed.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_building_refuelingvat\\building_refuelingvat.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:building_comps\\ara_building_refuelingvat\\building_refuelingvat.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_nutrientvat\\building_nutrientvat.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:building_comps\\ara_nutrientvat\\building_nutrientvat.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_catastrophemissilesilo\\building_catastrophemissilesilo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_catastrophemissilesilo\\building_catastrophemissilesilo.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_aranutrientdispenser\\building_aranutrientdispenser.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_aranutrientdispenser\\building_aranutrientdispenser.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_drawmoteinrange\\hediffcomp_drawmoteinrange.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_drawmoteinrange\\hediffcomp_drawmoteinrange.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\hediffs\\ara_hivemind\\compabilityeffect_binddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_hivemind\\compabilityeffect_binddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\hediffs\\ara_hivemind\\compproperties_abilitybinddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_hivemind\\compproperties_abilitybinddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\verbs\\verb_shootarc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:verbs\\verb_shootarc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
@@ -122,350 +14,24 @@
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 2,
"SelectedChildIndex": 1,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "JobDriver_EnterPowerArmor.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\PowerArmor\\JobDriver_EnterPowerArmor.cs",
"RelativeDocumentMoniker": "PowerArmor\\JobDriver_EnterPowerArmor.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\PowerArmor\\JobDriver_EnterPowerArmor.cs",
"RelativeToolTip": "PowerArmor\\JobDriver_EnterPowerArmor.cs",
"ViewState": "AgIAALIAAAAAAAAAAAAAALIAAAAwAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-22T02:46:09.665Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "CompPowerArmorStation.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\PowerArmor\\CompPowerArmorStation.cs",
"RelativeDocumentMoniker": "PowerArmor\\CompPowerArmorStation.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\PowerArmor\\CompPowerArmorStation.cs",
"RelativeToolTip": "PowerArmor\\CompPowerArmorStation.cs",
"ViewState": "AgIAABYAAAAAAAAAAAA0wCkAAAApAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-22T02:46:04.017Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "CompAbilityEffect_RandomHediff.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\CompAbilityEffect_RandomHediff.cs",
"RelativeDocumentMoniker": "Abilities\\CompAbilityEffect_RandomHediff.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\CompAbilityEffect_RandomHediff.cs",
"RelativeToolTip": "Abilities\\CompAbilityEffect_RandomHediff.cs",
"ViewState": "AgIAALgAAAAAAAAAAAAAAMQAAAAAAAAAAAAAAA==",
"ViewState": "AgIAAKIAAAAAAAAAAAAqwLoAAAAVAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-22T01:44:45.378Z",
"WhenOpened": "2025-10-22T06:34:08.063Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 5,
"Title": "CompProperties_AbilityInjectGenes.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_Genestealer\\CompProperties_AbilityInjectGenes.cs",
"RelativeDocumentMoniker": "Abilities\\ARA_Genestealer\\CompProperties_AbilityInjectGenes.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_Genestealer\\CompProperties_AbilityInjectGenes.cs",
"RelativeToolTip": "Abilities\\ARA_Genestealer\\CompProperties_AbilityInjectGenes.cs",
"ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T16:09:51.937Z"
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "CompAbilityEffect_ExtractGene.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_Genestealer\\CompAbilityEffect_ExtractGene.cs",
"RelativeDocumentMoniker": "Abilities\\ARA_Genestealer\\CompAbilityEffect_ExtractGene.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_Genestealer\\CompAbilityEffect_ExtractGene.cs",
"RelativeToolTip": "Abilities\\ARA_Genestealer\\CompAbilityEffect_ExtractGene.cs",
"ViewState": "AgIAADUAAAAAAAAAAAAewFwAAABVAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T16:09:29.065Z"
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "CompAbilityEffect_InjectGenes.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_Genestealer\\CompAbilityEffect_InjectGenes.cs",
"RelativeDocumentMoniker": "Abilities\\ARA_Genestealer\\CompAbilityEffect_InjectGenes.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_Genestealer\\CompAbilityEffect_InjectGenes.cs",
"RelativeToolTip": "Abilities\\ARA_Genestealer\\CompAbilityEffect_InjectGenes.cs",
"ViewState": "AgIAAC0AAAAAAAAAAAAtwDsAAAAiAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T16:08:53.903Z"
},
{
"$type": "Document",
"DocumentIndex": 6,
"Title": "Verb_MeleeAttack_Cleave.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Cleave\\Verb_MeleeAttack_Cleave.cs",
"RelativeDocumentMoniker": "Verbs\\Cleave\\Verb_MeleeAttack_Cleave.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Cleave\\Verb_MeleeAttack_Cleave.cs",
"RelativeToolTip": "Verbs\\Cleave\\Verb_MeleeAttack_Cleave.cs",
"ViewState": "AgIAAG8AAAAAAAAAAAAhwI8AAABCAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T12:52:47.558Z"
},
{
"$type": "Document",
"DocumentIndex": 8,
"Title": "HediffComp_HiveMindDrone.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\HediffComp_HiveMindDrone.cs",
"RelativeDocumentMoniker": "Hediffs\\ARA_HiveMind\\HediffComp_HiveMindDrone.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\HediffComp_HiveMindDrone.cs",
"RelativeToolTip": "Hediffs\\ARA_HiveMind\\HediffComp_HiveMindDrone.cs",
"ViewState": "AgIAAAAAAAAAAAAAAADwvxAAAAAJAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T11:18:08.124Z"
},
{
"$type": "Document",
"DocumentIndex": 10,
"Title": "MentalState_HiveMindCascade.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\MentalState\\MentalState_HiveMindCascade.cs",
"RelativeDocumentMoniker": "MentalState\\MentalState_HiveMindCascade.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\MentalState\\MentalState_HiveMindCascade.cs",
"RelativeToolTip": "MentalState\\MentalState_HiveMindCascade.cs",
"ViewState": "AgIAAI8AAAAAAAAAAAAkwJQAAAA2AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T10:30:11.696Z"
},
{
"$type": "Document",
"DocumentIndex": 11,
"Title": "Building_ArachnidGravEngine.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ArachnidGravEngine.cs",
"RelativeDocumentMoniker": "Buildings\\Building_ArachnidGravEngine.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ArachnidGravEngine.cs",
"RelativeToolTip": "Buildings\\Building_ArachnidGravEngine.cs",
"ViewState": "AgIAAAMAAAAAAAAAAAAkwBUAAAAJAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T09:12:42.006Z"
},
{
"$type": "Document",
"DocumentIndex": 15,
"Title": "CompAbilityEffect_AbilityShowSpawnablePawns.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_ShowSpawnablePawnsList\\CompAbilityEffect_AbilityShowSpawnablePawns.cs",
"RelativeDocumentMoniker": "Abilities\\ARA_ShowSpawnablePawnsList\\CompAbilityEffect_AbilityShowSpawnablePawns.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_ShowSpawnablePawnsList\\CompAbilityEffect_AbilityShowSpawnablePawns.cs",
"RelativeToolTip": "Abilities\\ARA_ShowSpawnablePawnsList\\CompAbilityEffect_AbilityShowSpawnablePawns.cs",
"ViewState": "AgIAADgAAAAAAAAAAAAuwEwAAAA8AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T08:29:37.669Z"
},
{
"$type": "Document",
"DocumentIndex": 16,
"Title": "Patch_UniquePawn.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_UniquePawn\\Patch_UniquePawn.cs",
"RelativeDocumentMoniker": "Pawn_Comps\\ARA_UniquePawn\\Patch_UniquePawn.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_UniquePawn\\Patch_UniquePawn.cs",
"RelativeToolTip": "Pawn_Comps\\ARA_UniquePawn\\Patch_UniquePawn.cs",
"ViewState": "AgIAACUAAAAAAAAAAAAkwDEAAAAlAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T07:20:36.341Z"
},
{
"$type": "Document",
"DocumentIndex": 19,
"Title": "Building_TurretGunHasSpeed.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_TurretGunHasSpeed.cs",
"RelativeDocumentMoniker": "Buildings\\Building_TurretGunHasSpeed.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_TurretGunHasSpeed.cs",
"RelativeToolTip": "Buildings\\Building_TurretGunHasSpeed.cs",
"ViewState": "AgIAAL4CAAAAAAAAAAAAAL4CAABZAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T07:00:48.984Z"
},
{
"$type": "Document",
"DocumentIndex": 9,
"Title": "Hediff_HiveMindMaster.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\Hediff_HiveMindMaster.cs",
"RelativeDocumentMoniker": "Hediffs\\ARA_HiveMind\\Hediff_HiveMindMaster.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\Hediff_HiveMindMaster.cs",
"RelativeToolTip": "Hediffs\\ARA_HiveMind\\Hediff_HiveMindMaster.cs",
"ViewState": "AgIAACIAAAAAAAAAAAAAADkAAACXAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-20T17:25:29.183Z"
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "Hediff_HiveMindDrone.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\Hediff_HiveMindDrone.cs",
"RelativeDocumentMoniker": "Hediffs\\ARA_HiveMind\\Hediff_HiveMindDrone.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\Hediff_HiveMindDrone.cs",
"RelativeToolTip": "Hediffs\\ARA_HiveMind\\Hediff_HiveMindDrone.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABYAAAAVAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-20T17:26:14.842Z"
},
{
"$type": "Document",
"DocumentIndex": 14,
"Title": "CompProperties_SpawnPawnFromList.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_SpawnPawnFromList\\CompProperties_SpawnPawnFromList.cs",
"RelativeDocumentMoniker": "Building_Comps\\ARA_SpawnPawnFromList\\CompProperties_SpawnPawnFromList.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_SpawnPawnFromList\\CompProperties_SpawnPawnFromList.cs",
"RelativeToolTip": "Building_Comps\\ARA_SpawnPawnFromList\\CompProperties_SpawnPawnFromList.cs",
"ViewState": "AgIAAA8AAAAAAAAAAAAuwBoAAAAvAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T08:29:42.187Z"
},
{
"$type": "Document",
"DocumentIndex": 13,
"Title": "CompSpawnPawnFromList.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_SpawnPawnFromList\\CompSpawnPawnFromList.cs",
"RelativeDocumentMoniker": "Building_Comps\\ARA_SpawnPawnFromList\\CompSpawnPawnFromList.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_SpawnPawnFromList\\CompSpawnPawnFromList.cs",
"RelativeToolTip": "Building_Comps\\ARA_SpawnPawnFromList\\CompSpawnPawnFromList.cs",
"ViewState": "AgIAAAsAAAAAAAAAAAAIwBkAAAANAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T08:29:44.344Z"
},
{
"$type": "Document",
"DocumentIndex": 12,
"Title": "Building_Incubatable.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Incubatable.cs",
"RelativeDocumentMoniker": "Buildings\\Building_Incubatable.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Incubatable.cs",
"RelativeToolTip": "Buildings\\Building_Incubatable.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAARAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T08:39:15.745Z"
},
{
"$type": "Document",
"DocumentIndex": 18,
"Title": "CompProperties_UniquePawn.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_UniquePawn\\CompProperties_UniquePawn.cs",
"RelativeDocumentMoniker": "Pawn_Comps\\ARA_UniquePawn\\CompProperties_UniquePawn.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_UniquePawn\\CompProperties_UniquePawn.cs",
"RelativeToolTip": "Pawn_Comps\\ARA_UniquePawn\\CompProperties_UniquePawn.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T07:00:00.021Z"
},
{
"$type": "Document",
"DocumentIndex": 17,
"Title": "CompUniquePawn.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_UniquePawn\\CompUniquePawn.cs",
"RelativeDocumentMoniker": "Pawn_Comps\\ARA_UniquePawn\\CompUniquePawn.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_UniquePawn\\CompUniquePawn.cs",
"RelativeToolTip": "Pawn_Comps\\ARA_UniquePawn\\CompUniquePawn.cs",
"ViewState": "AgIAADQAAAAAAAAAAAAkwEYAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T07:00:02.43Z"
},
{
"$type": "Document",
"DocumentIndex": 20,
"Title": "Building_RefuelingVat.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_Building_RefuelingVat\\Building_RefuelingVat.cs",
"RelativeDocumentMoniker": "Building_Comps\\ARA_Building_RefuelingVat\\Building_RefuelingVat.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_Building_RefuelingVat\\Building_RefuelingVat.cs",
"RelativeToolTip": "Building_Comps\\ARA_Building_RefuelingVat\\Building_RefuelingVat.cs",
"ViewState": "AgIAAPUAAAAAAAAAAAAAAPUAAAA2AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T07:00:47.792Z"
},
{
"$type": "Document",
"DocumentIndex": 21,
"Title": "Building_NutrientVat.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_NutrientVat\\Building_NutrientVat.cs",
"RelativeDocumentMoniker": "Building_Comps\\ARA_NutrientVat\\Building_NutrientVat.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_NutrientVat\\Building_NutrientVat.cs",
"RelativeToolTip": "Building_Comps\\ARA_NutrientVat\\Building_NutrientVat.cs",
"ViewState": "AgIAAJUBAAAAAAAAAAAmwKgBAABmAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T07:00:43.042Z"
},
{
"$type": "Document",
"DocumentIndex": 22,
"Title": "Building_CatastropheMissileSilo.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_CatastropheMissileSilo\\Building_CatastropheMissileSilo.cs",
"RelativeDocumentMoniker": "Buildings\\Building_CatastropheMissileSilo\\Building_CatastropheMissileSilo.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_CatastropheMissileSilo\\Building_CatastropheMissileSilo.cs",
"RelativeToolTip": "Buildings\\Building_CatastropheMissileSilo\\Building_CatastropheMissileSilo.cs",
"ViewState": "AgIAALAAAAAAAAAAAAAAAL8AAABMAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T07:00:24.191Z"
},
{
"$type": "Document",
"DocumentIndex": 23,
"Title": "Building_ARANutrientDispenser.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ARANutrientDispenser\\Building_ARANutrientDispenser.cs",
"RelativeDocumentMoniker": "Buildings\\Building_ARANutrientDispenser\\Building_ARANutrientDispenser.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ARANutrientDispenser\\Building_ARANutrientDispenser.cs",
"RelativeToolTip": "Buildings\\Building_ARANutrientDispenser\\Building_ARANutrientDispenser.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAACMAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T07:00:20.274Z"
},
{
"$type": "Document",
"DocumentIndex": 24,
"Title": "HediffComp_DrawMoteInRange.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_DrawMoteInRange\\HediffComp_DrawMoteInRange.cs",
"RelativeDocumentMoniker": "Hediffs\\ARA_DrawMoteInRange\\HediffComp_DrawMoteInRange.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_DrawMoteInRange\\HediffComp_DrawMoteInRange.cs",
"RelativeToolTip": "Hediffs\\ARA_DrawMoteInRange\\HediffComp_DrawMoteInRange.cs",
"ViewState": "AgIAAAgAAAAAAAAAAADwvw4AAAAJAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T03:59:47.61Z"
},
{
"$type": "Document",
"DocumentIndex": 25,
"Title": "CompAbilityEffect_BindDrone.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\CompAbilityEffect_BindDrone.cs",
"RelativeDocumentMoniker": "Hediffs\\ARA_HiveMind\\CompAbilityEffect_BindDrone.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\CompAbilityEffect_BindDrone.cs",
"RelativeToolTip": "Hediffs\\ARA_HiveMind\\CompAbilityEffect_BindDrone.cs",
"ViewState": "AgIAADYAAAAAAAAAAAAAwE8AAAAtAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-20T17:10:14.403Z"
},
{
"$type": "Document",
"DocumentIndex": 26,
"Title": "CompProperties_AbilityBindDrone.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\CompProperties_AbilityBindDrone.cs",
"RelativeDocumentMoniker": "Hediffs\\ARA_HiveMind\\CompProperties_AbilityBindDrone.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\CompProperties_AbilityBindDrone.cs",
"RelativeToolTip": "Hediffs\\ARA_HiveMind\\CompProperties_AbilityBindDrone.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAA/AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-20T17:10:09.072Z"
},
{
"$type": "Document",
"DocumentIndex": 27,
"Title": "Verb_ShootArc.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Verb_ShootArc.cs",
"RelativeDocumentMoniker": "Verbs\\Verb_ShootArc.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Verb_ShootArc.cs",
"RelativeToolTip": "Verbs\\Verb_ShootArc.cs",
"ViewState": "AgIAAAAAAAAAAAAAAADwvw4AAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-19T13:10:19.942Z"
}
]
}

View File

@@ -1,6 +1,7 @@
using RimWorld;
using System.Collections.Generic;
using System.Linq;
using RimWorld;
using System.Text;
using Verse;
namespace ArachnaeSwarm
@@ -53,7 +54,7 @@ namespace ArachnaeSwarm
var hediffDef = selectedHediffEntry.hediffDef;
// 检查是否允许重复施加
// 检查是否允许重复施加这里应该不会执行到因为CanApplyOn已经检查过
if (!Props.allowMultipleHediffs && target.health.hediffSet.HasHediff(hediffDef))
{
if (Props.showAlreadyHasHediffMessage && PawnUtility.ShouldSendNotificationAbout(parent.pawn))
@@ -131,6 +132,12 @@ namespace ArachnaeSwarm
continue;
}
// 如果不允许重复施加,检查目标是否已经有这个 hediff
if (!Props.allowMultipleHediffs && target.health.hediffSet.HasHediff(entry.hediffDef))
{
continue;
}
availableEntries.Add(entry);
availableWeights.Add(entry.weight);
}
@@ -144,6 +151,71 @@ namespace ArachnaeSwarm
return availableEntries.RandomElementByWeight(entry => entry.weight);
}
/// <summary>
/// 获取所有可用的 hediff 条目(用于显示)
/// </summary>
private List<HediffEntry> GetAvailableHediffEntries(Pawn target = null)
{
var availableEntries = new List<HediffEntry>();
foreach (var entry in Props.hediffEntries)
{
// 检查科技要求
if (entry.requiredResearchProject != null && !entry.requiredResearchProject.IsFinished)
{
continue;
}
// 如果有目标,检查目标条件
if (target != null && !CheckHediffConditions(entry, target))
{
continue;
}
// 如果不允许重复施加,检查目标是否已经有这个 hediff
if (target != null && !Props.allowMultipleHediffs && target.health.hediffSet.HasHediff(entry.hediffDef))
{
continue;
}
availableEntries.Add(entry);
}
return availableEntries;
}
/// <summary>
/// 检查目标是否已经有任何列表中的 hediff用于CanApplyOn
/// </summary>
private bool TargetHasAnyListedHediff(Pawn target)
{
if (target == null || Props.allowMultipleHediffs)
return false;
foreach (var entry in Props.hediffEntries)
{
// 检查科技要求
if (entry.requiredResearchProject != null && !entry.requiredResearchProject.IsFinished)
{
continue;
}
// 检查其他条件
if (!CheckHediffConditions(entry, target))
{
continue;
}
// 如果目标已经有这个 hediff返回 true
if (target.health.hediffSet.HasHediff(entry.hediffDef))
{
return true;
}
}
return false;
}
/// <summary>
/// 检查 hediff 的额外条件
/// </summary>
@@ -161,6 +233,25 @@ namespace ArachnaeSwarm
return true;
}
/// <summary>
/// 检查目标是否在黑名单中
/// </summary>
private bool IsTargetBlacklisted(Pawn target)
{
if (target == null || Props.blacklistHediffs.NullOrEmpty())
return false;
foreach (var hediffDef in Props.blacklistHediffs)
{
if (target.health.hediffSet.HasHediff(hediffDef))
{
return true;
}
}
return false;
}
protected virtual bool TryResist(Pawn pawn)
{
if (Props.resistChance > 0f)
@@ -183,10 +274,22 @@ namespace ArachnaeSwarm
{
return false;
}
return target.Pawn != null;
if (target.Pawn == null)
return false;
// 检查目标是否在黑名单中
if (IsTargetBlacklisted(target.Pawn))
return false;
// 检查目标是否已经有任何列表中的 hediff
if (TargetHasAnyListedHediff(target.Pawn))
return false;
// 检查是否有至少一个可用的 hediff
return SelectRandomHediffEntry(target.Pawn) != null;
}
// 修复:使用正确的 CanApplyOn 方法签名
public override bool CanApplyOn(LocalTargetInfo target, LocalTargetInfo dest)
{
if (!base.CanApplyOn(target, dest))
@@ -195,18 +298,111 @@ namespace ArachnaeSwarm
if (target.Pawn == null)
return false;
// 检查目标是否在黑名单中
if (IsTargetBlacklisted(target.Pawn))
return false;
// 检查目标是否已经有任何列表中的 hediff
if (TargetHasAnyListedHediff(target.Pawn))
return false;
// 检查是否有至少一个可用的 hediff
return SelectRandomHediffEntry(target.Pawn) != null;
}
public override string ExtraLabelMouseAttachment(LocalTargetInfo target)
{
StringBuilder sb = new StringBuilder();
if (target.Pawn == null)
{
// 没有具体目标时的显示
sb.AppendLine("ARA_AbilityReady".Translate());
sb.AppendLine();
// 显示所有可能的 hediff不考虑目标限制
var availableEntries = GetAvailableHediffEntries();
if (availableEntries.Any())
{
sb.AppendLine("ARA_PossibleEffects".Translate());
foreach (var entry in availableEntries)
{
sb.AppendLine($" • {entry.hediffDef.label} ({entry.weight:F1})");
}
}
}
else
{
// 检查黑名单
if (IsTargetBlacklisted(target.Pawn))
{
sb.AppendLine("ARA_TargetBlacklisted".Translate());
return sb.ToString().TrimEndNewlines();
}
// 检查目标是否已经有任何列表中的 hediff
if (TargetHasAnyListedHediff(target.Pawn))
{
sb.AppendLine("ARA_TargetAlreadyHasHediff".Translate());
return sb.ToString().TrimEndNewlines();
}
// 有具体目标时的显示
var availableEntries = GetAvailableHediffEntries(target.Pawn);
if (availableEntries.Any())
{
// 显示所有可能的 hediff
var hediffNames = availableEntries.Select(e => e.hediffDef.label).ToArray();
string hediffList = string.Join(", ", hediffNames);
sb.AppendLine("ARA_PotentialHediffs".Translate(hediffList));
// 显示抵抗几率信息
if (Props.resistChance > 0f)
{
float actualResistChance = Props.resistChance * target.Pawn.GetStatValue(StatDefOf.ToxicResistance);
sb.AppendLine("ARA_ResistChance".Translate(actualResistChance.ToStringPercent()));
}
}
else
{
sb.AppendLine("ARA_NoValidHediff".Translate());
}
}
return sb.ToString().TrimEndNewlines();
}
public override void DrawEffectPreview(LocalTargetInfo target)
{
base.DrawEffectPreview(target);
// 可选:在地图上绘制额外的预览效果
if (target.IsValid && target.Pawn != null)
{
// 检查黑名单
if (IsTargetBlacklisted(target.Pawn))
{
// 可以在这里绘制红色轮廓表示目标无效
return;
}
// 检查目标是否已经有任何列表中的 hediff
if (TargetHasAnyListedHediff(target.Pawn))
{
// 可以在这里绘制红色轮廓表示目标无效
return;
}
var selectedEntry = SelectRandomHediffEntry(target.Pawn);
if (selectedEntry != null)
{
return "ARA_PotentialHediff".Translate(selectedEntry.hediffDef.label);
// 在目标上方显示预览效果
GenDraw.DrawTargetHighlight(target);
}
}
return "ARA_NoValidHediff".Translate();
}
}
@@ -230,6 +426,9 @@ namespace ArachnaeSwarm
public bool showAlreadyHasHediffMessage = true;
public bool showNoValidHediffMessage = true;
// 黑名单功能:拥有这些 hediff 的目标无法成为目标
public List<HediffDef> blacklistHediffs;
public CompProperties_AbilityRandomHediff()
{
compClass = typeof(CompAbilityEffect_RandomHediff);