This commit is contained in:
2025-12-16 17:22:56 +08:00
parent 4c010b6db4
commit baeab4e6c5
22 changed files with 756 additions and 1341 deletions

Binary file not shown.

View File

@@ -1281,7 +1281,6 @@
<li Class="ArachnaeSwarm.CompProperties_AbilityTerrainRestriction">
<terrainDefs>
<li>ARA_InsectCreep</li>
<li>ARA_InsectCreepFloor</li>
<li>ARA_InsectCreepTile</li>
</terrainDefs>
<!-- <casterTerrainFailMessage>在阿拉克涅菌毯上才能使用此技能</casterTerrainFailMessage>
@@ -1348,7 +1347,6 @@
<li Class="ArachnaeSwarm.CompProperties_AbilityTerrainRestriction">
<terrainDefs>
<li>ARA_InsectCreep</li>
<li>ARA_InsectCreepFloor</li>
<li>ARA_InsectCreepTile</li>
</terrainDefs>
<!-- <casterTerrainFailMessage>在阿拉克涅菌毯上才能使用此技能</casterTerrainFailMessage>
@@ -1409,7 +1407,6 @@
<li Class="ArachnaeSwarm.CompProperties_AbilityTerrainRestriction">
<terrainDefs>
<li>ARA_InsectCreep</li>
<li>ARA_InsectCreepFloor</li>
<li>ARA_InsectCreepTile</li>
</terrainDefs>
<!-- <casterTerrainFailMessage>在阿拉克涅菌毯上才能使用此技能</casterTerrainFailMessage>
@@ -1730,7 +1727,6 @@
<li Class="ArachnaeSwarm.CompProperties_AbilityTerrainRestriction">
<terrainDefs>
<li>ARA_InsectCreep</li>
<li>ARA_InsectCreepFloor</li>
<li>ARA_InsectCreepTile</li>
</terrainDefs>
<!-- <casterTerrainFailMessage>在阿拉克涅菌毯上才能使用此技能</casterTerrainFailMessage>

View File

@@ -87,499 +87,4 @@
<tryAdjacentFreeSpaces>true</tryAdjacentFreeSpaces>
</projectile>
</ThingDef>
<AbilityDef ParentName="ARA_EggSpew_Base">
<defName>ARA_EggSpew_Techprint</defName>
<label>生育基因试验卵</label>
<description>从卵巢中排出一颗特殊的虫卵,它无法孵化任何督虫,而是可以孵化一些特定的科技蓝图,阿拉克涅女皇种可以通过与其交互将其激活。\n\n该虫卵需要使用大量精华素维持工作并且能研究什么以其落地时的研究完成度为准那些尚未解锁的科技将无法孵化其蓝图。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_EggSpew_Techprint</iconPath>
<comps>
<li Class="CompProperties_AbilityLaunchProjectile">
<projectileDef>ARA_Proj_EggSac_Techprint</projectileDef>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowTemperatureRange">
<temperatureCheckBuilding>ARA_InteractiveEggSac_Techprint</temperatureCheckBuilding>
<customLabel>温度要求</customLabel>
<showCurrentTemperature>true</showCurrentTemperature>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityResearchPrereq">
<requiredResearch>ARA_Technology_5ESS</requiredResearch>
<failMessage>需要科技 节点ESS-5"精华萃取" 以解锁技能</failMessage>
</li>
</comps>
</AbilityDef>
<!-- T0 -->
<AbilityDef ParentName="ARA_CocoonSpew_Base">
<defName>ARA_Cocoon_Cloth</defName>
<label>织物孵化茧</label>
<description>投放一枚织物茧,内含可以孵化一套基础织物的营养和遗传物质——参阅茧的超链接,了解其能生产的所有装备的特点。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Cocoon_Cloth</iconPath>
<comps>
<li Class="CompProperties_AbilityLaunchProjectile">
<projectileDef>ARA_Cocoon_Proj_Cloth</projectileDef>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowTemperatureRange">
<temperatureCheckBuilding>ARA_Cocoon_Cloth</temperatureCheckBuilding>
<customLabel>温度要求</customLabel>
<showCurrentTemperature>true</showCurrentTemperature>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowInteractiveThing">
<cocoonBuildingDef>ARA_Cocoon_Cloth</cocoonBuildingDef>
<customLabel>可孵化物品列表</customLabel>
<showResearchRequirements>true</showResearchRequirements>
<showNutritionCost>true</showNutritionCost>
<showIncubationTime>true</showIncubationTime>
</li>
</comps>
</AbilityDef>
<AbilityDef ParentName="ARA_CocoonSpew_Base">
<defName>ARA_Cocoon_Weapon</defName>
<label>武装器官孵化茧</label>
<description>投放一枚武装器官茧,内含可以孵化一套基础武装器官的营养和遗传物质——参阅茧的超链接,了解其能生产的所有装备的特点。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Cocoon_Weapon</iconPath>
<comps>
<li Class="CompProperties_AbilityLaunchProjectile">
<projectileDef>ARA_Cocoon_Proj_Weapon</projectileDef>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowTemperatureRange">
<temperatureCheckBuilding>ARA_Cocoon_Weapon</temperatureCheckBuilding>
<customLabel>温度要求</customLabel>
<showCurrentTemperature>true</showCurrentTemperature>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowInteractiveThing">
<cocoonBuildingDef>ARA_Cocoon_Weapon</cocoonBuildingDef>
<customLabel>可孵化物品列表</customLabel>
<showResearchRequirements>true</showResearchRequirements>
<showNutritionCost>true</showNutritionCost>
<showIncubationTime>true</showIncubationTime>
</li>
</comps>
</AbilityDef>
<AbilityDef ParentName="ARA_CocoonSpew_Base">
<defName>ARA_Cocoon_Cloth_From_Death</defName>
<label>尸织:织物孵化茧</label>
<description>指定一具尚未腐烂或轻微腐烂的尸体,将其转化为一枚织物茧,尸体剩余的营养值会转化为茧的营养值——参阅茧的超链接,了解其能生产的所有装备的特点。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Cocoon_Cloth_From_Corpse</iconPath>
<verbProperties>
<verbClass>Verb_CastAbilityTouch</verbClass>
<range>-1</range>
<warmupTime>7</warmupTime>
<soundCast>AcidSpray_Resolve</soundCast>
<violent>false</violent>
<targetable>true</targetable>
<targetParams Inherit="False">
<canTargetSelf>false</canTargetSelf>
<canTargetMechs>false</canTargetMechs>
<canTargetBuildings>false</canTargetBuildings>
<canTargetCorpses>true</canTargetCorpses>
</targetParams>
</verbProperties>
<cooldownTicksRange>1000</cooldownTicksRange>
<jobDef>CastAbilityOnThingMelee</jobDef>
<charges>10</charges>
<cooldownPerCharge>true</cooldownPerCharge>
<comps>
<li Class="ArachnaeSwarm.CompProperties_AbilityTransformCorpse">
<buildingDef>ARA_Cocoon_Cloth_From_Death</buildingDef>
<nutritionToFuelRatio>1</nutritionToFuelRatio>
<requireFreshCorpse>false</requireFreshCorpse>
<maxRotStage>Rotting</maxRotStage> <!-- 允许新鲜和略腐烂的尸体 -->
<sound>AcidSpray_Resolve</sound>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowTemperatureRange">
<temperatureCheckBuilding>ARA_Cocoon_Cloth</temperatureCheckBuilding>
<customLabel>温度要求</customLabel>
<showCurrentTemperature>true</showCurrentTemperature>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowInteractiveThing">
<cocoonBuildingDef>ARA_Cocoon_Cloth</cocoonBuildingDef>
<customLabel>可孵化物品列表</customLabel>
<showResearchRequirements>true</showResearchRequirements>
<showNutritionCost>true</showNutritionCost>
<showIncubationTime>true</showIncubationTime>
</li>
</comps>
</AbilityDef>
<AbilityDef ParentName="ARA_CocoonSpew_Base">
<defName>ARA_Cocoon_Weapon_From_Death</defName>
<label>尸织:武装器官孵化茧</label>
<description>指定一具尚未腐烂或轻微腐烂的尸体,将其转化为一枚武装器官茧,尸体剩余的营养值会转化为茧的营养值——参阅茧的超链接,了解其能生产的所有装备的特点。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Cocoon_Weapon_From_Corpse</iconPath>
<verbProperties>
<verbClass>Verb_CastAbilityTouch</verbClass>
<range>-1</range>
<warmupTime>7</warmupTime>
<soundCast>AcidSpray_Resolve</soundCast>
<violent>false</violent>
<targetable>true</targetable>
<targetParams Inherit="False">
<canTargetSelf>false</canTargetSelf>
<canTargetMechs>false</canTargetMechs>
<canTargetBuildings>false</canTargetBuildings>
<canTargetCorpses>true</canTargetCorpses>
</targetParams>
</verbProperties>
<cooldownTicksRange>1000</cooldownTicksRange>
<jobDef>CastAbilityOnThingMelee</jobDef>
<charges>10</charges>
<cooldownPerCharge>true</cooldownPerCharge>
<comps>
<li Class="ArachnaeSwarm.CompProperties_AbilityTransformCorpse">
<buildingDef>ARA_Cocoon_Weapon_From_Death</buildingDef>
<nutritionToFuelRatio>1</nutritionToFuelRatio>
<requireFreshCorpse>false</requireFreshCorpse>
<maxRotStage>Rotting</maxRotStage> <!-- 允许新鲜和略腐烂的尸体 -->
<sound>AcidSpray_Resolve</sound>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowTemperatureRange">
<temperatureCheckBuilding>ARA_Cocoon_Weapon</temperatureCheckBuilding>
<customLabel>温度要求</customLabel>
<showCurrentTemperature>true</showCurrentTemperature>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowInteractiveThing">
<cocoonBuildingDef>ARA_Cocoon_Weapon</cocoonBuildingDef>
<customLabel>可孵化物品列表</customLabel>
<showResearchRequirements>true</showResearchRequirements>
<showNutritionCost>true</showNutritionCost>
<showIncubationTime>true</showIncubationTime>
</li>
</comps>
</AbilityDef>
<!-- T1 -->
<AbilityDef ParentName="ARA_CocoonSpew_Base">
<defName>ARA_Cocoon_Cloth_1Stage</defName>
<label>织物孵化茧——等级1</label>
<description>投放一枚织物茧,内含可以孵化一套基础织物的营养和遗传物质——参阅茧的超链接,了解其能生产的所有装备的特点。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Cocoon_Cloth_1Stage</iconPath>
<comps>
<li Class="CompProperties_AbilityLaunchProjectile">
<projectileDef>ARA_Cocoon_Proj_Cloth_1Stage</projectileDef>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowTemperatureRange">
<temperatureCheckBuilding>ARA_Cocoon_Cloth_1Stage</temperatureCheckBuilding>
<customLabel>温度要求</customLabel>
<showCurrentTemperature>true</showCurrentTemperature>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowInteractiveThing">
<cocoonBuildingDef>ARA_Cocoon_Cloth_1Stage</cocoonBuildingDef>
<customLabel>可孵化物品列表</customLabel>
<showResearchRequirements>true</showResearchRequirements>
<showNutritionCost>true</showNutritionCost>
<showIncubationTime>true</showIncubationTime>
</li>
</comps>
</AbilityDef>
<AbilityDef ParentName="ARA_CocoonSpew_Base">
<defName>ARA_Cocoon_Weapon_1Stage</defName>
<label>武装器官孵化茧——等级1</label>
<description>投放一枚武装器官茧,内含可以孵化一套基础武装器官的营养和遗传物质——参阅茧的超链接,了解其能生产的所有装备的特点。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Cocoon_Weapon_1Stage</iconPath>
<comps>
<li Class="CompProperties_AbilityLaunchProjectile">
<projectileDef>ARA_Cocoon_Proj_Weapon_1Stage</projectileDef>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowTemperatureRange">
<temperatureCheckBuilding>ARA_Cocoon_Weapon_1Stage</temperatureCheckBuilding>
<customLabel>温度要求</customLabel>
<showCurrentTemperature>true</showCurrentTemperature>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowInteractiveThing">
<cocoonBuildingDef>ARA_Cocoon_Weapon_1Stage</cocoonBuildingDef>
<customLabel>可孵化物品列表</customLabel>
<showResearchRequirements>true</showResearchRequirements>
<showNutritionCost>true</showNutritionCost>
<showIncubationTime>true</showIncubationTime>
</li>
</comps>
</AbilityDef>
<AbilityDef ParentName="ARA_CocoonSpew_Base">
<defName>ARA_Cocoon_Cloth_1Stage_From_Death</defName>
<label>尸织织物孵化茧——等级1</label>
<description>指定一具尚未腐烂或轻微腐烂的尸体,将其转化为一枚织物茧,尸体剩余的营养值会转化为茧的营养值——参阅茧的超链接,了解其能生产的所有装备的特点。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Cocoon_Cloth_1Stage_From_Corpse</iconPath>
<verbProperties>
<verbClass>Verb_CastAbilityTouch</verbClass>
<range>-1</range>
<warmupTime>7</warmupTime>
<soundCast>AcidSpray_Resolve</soundCast>
<violent>false</violent>
<targetable>true</targetable>
<targetParams Inherit="False">
<canTargetSelf>false</canTargetSelf>
<canTargetMechs>false</canTargetMechs>
<canTargetBuildings>false</canTargetBuildings>
<canTargetCorpses>true</canTargetCorpses>
</targetParams>
</verbProperties>
<cooldownTicksRange>1000</cooldownTicksRange>
<jobDef>CastAbilityOnThingMelee</jobDef>
<charges>10</charges>
<cooldownPerCharge>true</cooldownPerCharge>
<comps>
<li Class="ArachnaeSwarm.CompProperties_AbilityTransformCorpse">
<buildingDef>ARA_Cocoon_Cloth_1Stage_From_Death</buildingDef>
<nutritionToFuelRatio>1</nutritionToFuelRatio>
<requireFreshCorpse>false</requireFreshCorpse>
<maxRotStage>Rotting</maxRotStage> <!-- 允许新鲜和略腐烂的尸体 -->
<sound>AcidSpray_Resolve</sound>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowTemperatureRange">
<temperatureCheckBuilding>ARA_Cocoon_Cloth_1Stage</temperatureCheckBuilding>
<customLabel>温度要求</customLabel>
<showCurrentTemperature>true</showCurrentTemperature>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowInteractiveThing">
<cocoonBuildingDef>ARA_Cocoon_Cloth_1Stage</cocoonBuildingDef>
<customLabel>可孵化物品列表</customLabel>
<showResearchRequirements>true</showResearchRequirements>
<showNutritionCost>true</showNutritionCost>
<showIncubationTime>true</showIncubationTime>
</li>
</comps>
</AbilityDef>
<AbilityDef ParentName="ARA_CocoonSpew_Base">
<defName>ARA_Cocoon_Weapon_1Stage_From_Death</defName>
<label>尸织武装器官孵化茧——等级1</label>
<description>指定一具尚未腐烂或轻微腐烂的尸体,将其转化为一枚武装器官茧,尸体剩余的营养值会转化为茧的营养值——参阅茧的超链接,了解其能生产的所有装备的特点。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Cocoon_Weapon_1Stage_From_Corpse</iconPath>
<verbProperties>
<verbClass>Verb_CastAbilityTouch</verbClass>
<range>-1</range>
<warmupTime>7</warmupTime>
<soundCast>AcidSpray_Resolve</soundCast>
<violent>false</violent>
<targetable>true</targetable>
<targetParams Inherit="False">
<canTargetSelf>false</canTargetSelf>
<canTargetMechs>false</canTargetMechs>
<canTargetBuildings>false</canTargetBuildings>
<canTargetCorpses>true</canTargetCorpses>
</targetParams>
</verbProperties>
<cooldownTicksRange>1000</cooldownTicksRange>
<jobDef>CastAbilityOnThingMelee</jobDef>
<charges>10</charges>
<cooldownPerCharge>true</cooldownPerCharge>
<comps>
<li Class="ArachnaeSwarm.CompProperties_AbilityTransformCorpse">
<buildingDef>ARA_Cocoon_Weapon_1Stage_From_Death</buildingDef>
<nutritionToFuelRatio>1</nutritionToFuelRatio>
<requireFreshCorpse>false</requireFreshCorpse>
<maxRotStage>Rotting</maxRotStage> <!-- 允许新鲜和略腐烂的尸体 -->
<sound>AcidSpray_Resolve</sound>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowTemperatureRange">
<temperatureCheckBuilding>ARA_Cocoon_Weapon_1Stage</temperatureCheckBuilding>
<customLabel>温度要求</customLabel>
<showCurrentTemperature>true</showCurrentTemperature>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowInteractiveThing">
<cocoonBuildingDef>ARA_Cocoon_Weapon_1Stage</cocoonBuildingDef>
<customLabel>可孵化物品列表</customLabel>
<showResearchRequirements>true</showResearchRequirements>
<showNutritionCost>true</showNutritionCost>
<showIncubationTime>true</showIncubationTime>
</li>
</comps>
</AbilityDef>
<!-- T2 -->
<AbilityDef ParentName="ARA_CocoonSpew_Base">
<defName>ARA_Cocoon_Cloth_2Stage</defName>
<label>织物孵化茧——等级2</label>
<description>投放一枚织物茧,内含可以孵化一套基础织物的营养和遗传物质——参阅茧的超链接,了解其能生产的所有装备的特点。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Cocoon_Cloth_2Stage</iconPath>
<comps>
<li Class="CompProperties_AbilityLaunchProjectile">
<projectileDef>ARA_Cocoon_Proj_Cloth_2Stage</projectileDef>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowTemperatureRange">
<temperatureCheckBuilding>ARA_Cocoon_Cloth_2Stage</temperatureCheckBuilding>
<customLabel>温度要求</customLabel>
<showCurrentTemperature>true</showCurrentTemperature>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowInteractiveThing">
<cocoonBuildingDef>ARA_Cocoon_Cloth_2Stage</cocoonBuildingDef>
<customLabel>可孵化物品列表</customLabel>
<showResearchRequirements>true</showResearchRequirements>
<showNutritionCost>true</showNutritionCost>
<showIncubationTime>true</showIncubationTime>
</li>
</comps>
</AbilityDef>
<AbilityDef ParentName="ARA_CocoonSpew_Base">
<defName>ARA_Cocoon_Weapon_2Stage</defName>
<label>武装器官孵化茧——等级2</label>
<description>投放一枚武装器官茧,内含可以孵化一套基础武装器官的营养和遗传物质——参阅茧的超链接,了解其能生产的所有装备的特点。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Cocoon_Weapon_2Stage</iconPath>
<comps>
<li Class="CompProperties_AbilityLaunchProjectile">
<projectileDef>ARA_Cocoon_Proj_Weapon_2Stage</projectileDef>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowTemperatureRange">
<temperatureCheckBuilding>ARA_Cocoon_Weapon_2Stage</temperatureCheckBuilding>
<customLabel>温度要求</customLabel>
<showCurrentTemperature>true</showCurrentTemperature>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowInteractiveThing">
<cocoonBuildingDef>ARA_Cocoon_Weapon_2Stage</cocoonBuildingDef>
<customLabel>可孵化物品列表</customLabel>
<showResearchRequirements>true</showResearchRequirements>
<showNutritionCost>true</showNutritionCost>
<showIncubationTime>true</showIncubationTime>
</li>
</comps>
</AbilityDef>
<AbilityDef ParentName="ARA_CocoonSpew_Base">
<defName>ARA_Cocoon_Cloth_2Stage_From_Death</defName>
<label>尸织织物孵化茧——等级2</label>
<description>指定一具尚未腐烂或轻微腐烂的尸体,将其转化为一枚织物茧,尸体剩余的营养值会转化为茧的营养值——参阅茧的超链接,了解其能生产的所有装备的特点。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Cocoon_Cloth_2Stage_From_Corpse</iconPath>
<verbProperties>
<verbClass>Verb_CastAbilityTouch</verbClass>
<range>-1</range>
<warmupTime>7</warmupTime>
<soundCast>AcidSpray_Resolve</soundCast>
<violent>false</violent>
<targetable>true</targetable>
<targetParams Inherit="False">
<canTargetSelf>false</canTargetSelf>
<canTargetMechs>false</canTargetMechs>
<canTargetBuildings>false</canTargetBuildings>
<canTargetCorpses>true</canTargetCorpses>
</targetParams>
</verbProperties>
<cooldownTicksRange>1000</cooldownTicksRange>
<jobDef>CastAbilityOnThingMelee</jobDef>
<charges>10</charges>
<cooldownPerCharge>true</cooldownPerCharge>
<comps>
<li Class="ArachnaeSwarm.CompProperties_AbilityTransformCorpse">
<buildingDef>ARA_Cocoon_Cloth_2Stage_From_Death</buildingDef>
<nutritionToFuelRatio>1</nutritionToFuelRatio>
<requireFreshCorpse>false</requireFreshCorpse>
<maxRotStage>Rotting</maxRotStage> <!-- 允许新鲜和略腐烂的尸体 -->
<sound>AcidSpray_Resolve</sound>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowTemperatureRange">
<temperatureCheckBuilding>ARA_Cocoon_Cloth_2Stage</temperatureCheckBuilding>
<customLabel>温度要求</customLabel>
<showCurrentTemperature>true</showCurrentTemperature>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowInteractiveThing">
<cocoonBuildingDef>ARA_Cocoon_Cloth_2Stage</cocoonBuildingDef>
<customLabel>可孵化物品列表</customLabel>
<showResearchRequirements>true</showResearchRequirements>
<showNutritionCost>true</showNutritionCost>
<showIncubationTime>true</showIncubationTime>
</li>
</comps>
</AbilityDef>
<AbilityDef ParentName="ARA_CocoonSpew_Base">
<defName>ARA_Cocoon_Weapon_2Stage_From_Death</defName>
<label>尸织武装器官孵化茧——等级2</label>
<description>指定一具尚未腐烂或轻微腐烂的尸体,将其转化为一枚武装器官茧,尸体剩余的营养值会转化为茧的营养值——参阅茧的超链接,了解其能生产的所有装备的特点。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Cocoon_Weapon_2Stage_From_Corpse</iconPath>
<verbProperties>
<verbClass>Verb_CastAbilityTouch</verbClass>
<range>-1</range>
<warmupTime>7</warmupTime>
<soundCast>AcidSpray_Resolve</soundCast>
<violent>false</violent>
<targetable>true</targetable>
<targetParams Inherit="False">
<canTargetSelf>false</canTargetSelf>
<canTargetMechs>false</canTargetMechs>
<canTargetBuildings>false</canTargetBuildings>
<canTargetCorpses>true</canTargetCorpses>
</targetParams>
</verbProperties>
<cooldownTicksRange>1000</cooldownTicksRange>
<jobDef>CastAbilityOnThingMelee</jobDef>
<charges>10</charges>
<cooldownPerCharge>true</cooldownPerCharge>
<comps>
<li Class="ArachnaeSwarm.CompProperties_AbilityTransformCorpse">
<buildingDef>ARA_Cocoon_Weapon_2Stage_From_Death</buildingDef>
<nutritionToFuelRatio>1</nutritionToFuelRatio>
<requireFreshCorpse>false</requireFreshCorpse>
<maxRotStage>Rotting</maxRotStage> <!-- 允许新鲜和略腐烂的尸体 -->
<sound>AcidSpray_Resolve</sound>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowTemperatureRange">
<temperatureCheckBuilding>ARA_Cocoon_Weapon_2Stage</temperatureCheckBuilding>
<customLabel>温度要求</customLabel>
<showCurrentTemperature>true</showCurrentTemperature>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowInteractiveThing">
<cocoonBuildingDef>ARA_Cocoon_Weapon_2Stage</cocoonBuildingDef>
<customLabel>可孵化物品列表</customLabel>
<showResearchRequirements>true</showResearchRequirements>
<showNutritionCost>true</showNutritionCost>
<showIncubationTime>true</showIncubationTime>
</li>
</comps>
</AbilityDef>
<AbilityDef ParentName="ARA_CocoonSpew_Base">
<defName>ARA_Cocoon_Medicine</defName>
<label>织物医药茧</label>
<description>投放一枚医药茧,内含可以孵化一组医疗用品或化学品的营养和遗传物质——参阅茧的超链接,了解其能生产的所有物品的特点。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Cocoon_Medicine</iconPath>
<comps>
<li Class="CompProperties_AbilityLaunchProjectile">
<projectileDef>ARA_Cocoon_Proj_Medicine</projectileDef>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowTemperatureRange">
<temperatureCheckBuilding>ARA_Cocoon_Medicine</temperatureCheckBuilding>
<customLabel>温度要求</customLabel>
<showCurrentTemperature>true</showCurrentTemperature>
</li>
</comps>
</AbilityDef>
<AbilityDef ParentName="ARA_CocoonSpew_Base">
<defName>ARA_Cocoon_Medicine_From_Death</defName>
<label>尸织:织物医药茧</label>
<description>指定一具尚未腐烂或轻微腐烂的尸体,将其转化为一枚医药茧,尸体剩余的营养值会转化为茧的营养值——参阅茧的超链接,了解其能生产的所有物品的特点。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Cocoon_Medicine_From_Corpse</iconPath>
<verbProperties>
<verbClass>Verb_CastAbilityTouch</verbClass>
<range>-1</range>
<warmupTime>7</warmupTime>
<soundCast>AcidSpray_Resolve</soundCast>
<violent>false</violent>
<targetable>true</targetable>
<targetParams Inherit="False">
<canTargetSelf>false</canTargetSelf>
<canTargetMechs>false</canTargetMechs>
<canTargetBuildings>false</canTargetBuildings>
<canTargetCorpses>true</canTargetCorpses>
</targetParams>
</verbProperties>
<cooldownTicksRange>1000</cooldownTicksRange>
<jobDef>CastAbilityOnThingMelee</jobDef>
<charges>10</charges>
<cooldownPerCharge>true</cooldownPerCharge>
<comps>
<li Class="ArachnaeSwarm.CompProperties_AbilityTransformCorpse">
<buildingDef>ARA_Cocoon_Medicine_From_Death</buildingDef>
<nutritionToFuelRatio>1</nutritionToFuelRatio>
<requireFreshCorpse>false</requireFreshCorpse>
<maxRotStage>Rotting</maxRotStage> <!-- 允许新鲜和略腐烂的尸体 -->
<sound>AcidSpray_Resolve</sound>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowTemperatureRange">
<temperatureCheckBuilding>ARA_Cocoon_Medicine_From_Death</temperatureCheckBuilding>
<customLabel>温度要求</customLabel>
<showCurrentTemperature>true</showCurrentTemperature>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityShowInteractiveThing">
<cocoonBuildingDef>ARA_Cocoon_Medicine_From_Death</cocoonBuildingDef>
<customLabel>可孵化物品列表</customLabel>
<showResearchRequirements>true</showResearchRequirements>
<showNutritionCost>true</showNutritionCost>
<showIncubationTime>true</showIncubationTime>
</li>
</comps>
</AbilityDef>
</Defs>

View File

@@ -26,7 +26,6 @@
<li Class="ArachnaeSwarm.CompProperties_AbilityTerrainRestriction">
<terrainDefs>
<li>ARA_InsectCreep</li>
<li>ARA_InsectCreepFloor</li>
<li>ARA_InsectCreepTile</li>
</terrainDefs>
<!-- <casterTerrainFailMessage>在阿拉克涅菌毯上才能使用此技能</casterTerrainFailMessage>

View File

@@ -163,10 +163,53 @@
</li>
</stages>
<comps>
<li Class="ArachnaeSwarm.MoharHediffs.HediffCompProperties_Spawner">
<!--
==================================================
基础设置 (Basic Settings)
==================================================
-->
<!-- [DEBUG] 如果为true则为此组件启用详细的调试日志记录。 -->
<debug>true</debug>
<!-- 要生成的物品的ThingDef。 -->
<thingToSpawn>ARA_Medicine</thingToSpawn>
<!-- 每次生成的基础物品数量。 -->
<spawnCount>10</spawnCount>
<!--
==================================================
生成周期 (Spawning Interval)
==================================================
-->
<!-- 下一次生成事件发生前的最少天数。 -->
<minDaysB4Next>1</minDaysB4Next>
<!-- 下一次生成事件发生前的最大天数。 -->
<maxDaysB4Next>1</maxDaysB4Next>
<randomGrace>0</randomGrace>
<!--
==================================================
与年龄相关的调整 (Age-Related Adjustments)
==================================================
-->
<!-- 如果为true生成数量将根据宿主的年龄进行调整。 -->
<ageWeightedQuantity>false</ageWeightedQuantity>
<!-- 如果为true且ageWeightedQuantity为true则随着宿主年龄增长生成数量变多。 -->
<olderBiggerQuantity>true</olderBiggerQuantity>
<!-- 如果为true且ageWeightedQuantity为true则随年龄增长的数量缩放将是指数性的而非线性的。 -->
<exponentialQuantity>true</exponentialQuantity>
<!-- 指数级数量缩放的最大乘数,以防止出现荒谬的数字。 -->
<exponentialRatioLimit>20</exponentialRatioLimit>
<!--
==================================================
生成条件 (Spawning Conditions)
==================================================
-->
<!-- 如果为true当宿主Pawn饥饿时生成将暂停。 -->
<hungerRelative>true</hungerRelative>
<!-- 如果为true当宿主Pawn受伤时生成将暂停。 -->
<healthRelative>false</healthRelative>
</li>
<li Class="HediffCompProperties_GiveAbility">
<abilityDefs>
<li>ARA_Cocoon_Medicine</li>
<li>ARA_Cocoon_Medicine_From_Death</li>
<li>ARA_MimicNematode_Needle_Fire</li>
</abilityDefs>
</li>

View File

@@ -17,7 +17,6 @@
<!--<li>SterileTile</li> 无菌地砖 -->
<!-- 您可以在这里添加更多地形, 比如: -->
<li>ARA_InsectCreep</li>
<li>ARA_InsectCreepFloor</li>
<li>ARA_InsectCreepTile</li>
</terrainDefs>
@@ -72,7 +71,6 @@
<!--<li>SterileTile</li> 无菌地砖 -->
<!-- 您可以在这里添加更多地形, 比如: -->
<li>ARA_InsectCreep</li>
<li>ARA_InsectCreepFloor</li>
<li>ARA_InsectCreepTile</li>
</terrainDefs>
@@ -127,7 +125,6 @@
<!--<li>SterileTile</li> 无菌地砖 -->
<!-- 您可以在这里添加更多地形, 比如: -->
<li>ARA_InsectCreep</li>
<li>ARA_InsectCreepFloor</li>
<li>ARA_InsectCreepTile</li>
</terrainDefs>
@@ -185,7 +182,6 @@
<!--<li>SterileTile</li> 无菌地砖 -->
<!-- 您可以在这里添加更多地形, 比如: -->
<li>ARA_InsectCreep</li>
<li>ARA_InsectCreepFloor</li>
<li>ARA_InsectCreepTile</li>
</terrainDefs>
@@ -240,7 +236,6 @@
<!--<li>SterileTile</li> 无菌地砖 -->
<!-- 您可以在这里添加更多地形, 比如: -->
<li>ARA_InsectCreep</li>
<li>ARA_InsectCreepFloor</li>
<li>ARA_InsectCreepTile</li>
</terrainDefs>
@@ -298,7 +293,6 @@
<!--<li>SterileTile</li> 无菌地砖 -->
<!-- 您可以在这里添加更多地形, 比如: -->
<li>ARA_InsectCreep</li>
<li>ARA_InsectCreepFloor</li>
<li>ARA_InsectCreepTile</li>
</terrainDefs>

View File

@@ -62,7 +62,6 @@
<abilities>
<li>ARA_BindDrone</li>
<li>ARA_AcidSprayBurst_Queen</li>
<li>ARA_EggSpew_Techprint</li>
<li>ARA_TumorSpew</li>
</abilities>
</PawnKindDef>

View File

@@ -486,7 +486,6 @@
<!--<li>SterileTile</li> 无菌地砖 -->
<!-- 您可以在这里添加更多地形, 比如: -->
<li>ARA_InsectCreep</li>
<li>ARA_InsectCreepFloor</li>
<li>ARA_InsectCreepTile</li>
</terrainDefs>

View File

@@ -28,13 +28,6 @@
<daysToRotStart>150</daysToRotStart>
<rotDestroys>true</rotDestroys>
</li>
<li Class="ArachnaeSwarm.CompProperties_ExtraIncubationInfo">
<cocoonDefs>
<li>ARA_Cocoon_Medicine</li>
<li>ARA_Cocoon_Medicine_From_Death</li>
<li>ARA_BioforgeIncubator_Thing</li>
</cocoonDefs>
</li>
</comps>
<allowedArchonexusCount>20</allowedArchonexusCount>
</ThingDef>
@@ -85,13 +78,6 @@
<needLevelOffset>1</needLevelOffset>
<listOrder>1000</listOrder>
</li>
<li Class="ArachnaeSwarm.CompProperties_ExtraIncubationInfo">
<cocoonDefs>
<li>ARA_Cocoon_Medicine</li>
<li>ARA_Cocoon_Medicine_From_Death</li>
<li>ARA_BioforgeIncubator_Thing</li>
</cocoonDefs>
</li>
</comps>
</ThingDef>
<HediffDef>

View File

@@ -39,9 +39,6 @@
<defName>ARA_Bodystocking_White</defName>
<label>连身白丝</label>
<description>阿拉克涅虫群的装饰性织物,对于虫群来说应该是没啥用的东西。</description>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Cloth</ThingDef>
</descriptionHyperlinks>
<graphicData>
<texPath>ArachnaeSwarm/Apparel/ARA_Bodystocking_White</texPath>
</graphicData>
@@ -70,9 +67,6 @@
<defName>ARA_Bodystocking_Black</defName>
<label>连身黑丝</label>
<description>阿拉克涅虫群的装饰性织物,对于虫群来说应该是没啥用的东西。</description>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Cloth</ThingDef>
</descriptionHyperlinks>
<graphicData>
<texPath>ArachnaeSwarm/Apparel/ARA_Bodystocking_Black</texPath>
</graphicData>
@@ -101,9 +95,6 @@
<defName>ARA_Latex_Catsuit</defName>
<label>紧身衣</label>
<description>阿拉克涅虫群的装饰性织物,对于虫群来说应该是没啥用的东西。</description>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Cloth</ThingDef>
</descriptionHyperlinks>
<graphicData>
<texPath>ArachnaeSwarm/Apparel/ARA_Latex_Catsuit</texPath>
</graphicData>
@@ -132,9 +123,6 @@
<defName>ARA_Pantyhose_Black</defName>
<label>黑丝裤袜</label>
<description>阿拉克涅虫群的装饰性织物,对于虫群来说应该是没啥用的东西。</description>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Cloth</ThingDef>
</descriptionHyperlinks>
<graphicData>
<texPath>ArachnaeSwarm/Apparel/ARA_Pantyhose_Black</texPath>
</graphicData>
@@ -163,9 +151,6 @@
<defName>ARA_Pantyhose_White</defName>
<label>白丝裤袜</label>
<description>阿拉克涅虫群的装饰性织物,对于虫群来说应该是没啥用的东西。</description>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Cloth</ThingDef>
</descriptionHyperlinks>
<graphicData>
<texPath>ArachnaeSwarm/Apparel/ARA_Pantyhose_White</texPath>
</graphicData>
@@ -275,9 +260,6 @@
<defName>ARA_Maid_Uniform</defName>
<label>阿拉克涅女仆装</label>
<description>阿拉克涅督虫们所着织物中的一种,设计上修身轻便,可以使其在阿拉克捏菌毯上获得额外的工作速度,是她们永远服侍虫巢的形象的完美具现化。</description>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Cloth</ThingDef>
</descriptionHyperlinks>
<recipeMaker>
<recipeUsers Inherit="False" />
<researchPrerequisite>ARA_Technology_4DIL</researchPrerequisite>
@@ -324,9 +306,6 @@
<defName>ARA_Maid_Dress</defName>
<label>阿拉克涅武装女仆装</label>
<description>阿拉克涅督虫们所着织物中的一种,设计上典雅古朴,可以使其在阿拉克捏菌毯上稳定身形以获得射击精度,是她们永远服侍虫巢的形象的完美具现化。</description>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Cloth</ThingDef>
</descriptionHyperlinks>
<recipeMaker>
<recipeUsers Inherit="False" />
<researchPrerequisite>ARA_Technology_4DIL</researchPrerequisite>
@@ -373,9 +352,6 @@
<defName>ARA_Daily_Wear</defName>
<label>阿拉克涅常服</label>
<description>阿拉克涅督虫们所着织物中的一种,可以使其在阿拉克捏菌毯上获得远行队移动速度,在离开菌毯后缓慢衰减。这套可爱的常服可以和虫群的灵能扭曲效果一起作用于人类,使他们发出“真可爱”的感慨。</description>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Cloth</ThingDef>
</descriptionHyperlinks>
<recipeMaker>
<recipeUsers Inherit="False" />
<researchPrerequisite>ARA_Technology_4DIL</researchPrerequisite>
@@ -423,9 +399,6 @@
<defName>ARA_Bunny_Girl_Uniform</defName>
<label>阿拉克涅兔女郎装</label>
<description>阿拉克涅督虫们所着织物中的一种,紧紧贴合督虫们的身体曲线,可以使其在阿拉克捏菌毯上获得额外的移动速度。</description>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Cloth_1Stage</ThingDef>
</descriptionHyperlinks>
<recipeMaker>
<recipeUsers Inherit="False" />
<researchPrerequisite>ARA_Technology_5DIL</researchPrerequisite>
@@ -473,7 +446,6 @@
<label>阿拉克涅护士装</label>
<description>阿拉克涅督虫们所着织物中的一种,似乎是从人类的社会中得到了红十字元素的设计构思——只是虫群自己并不清楚为什么要使用这个标志。织物内部蕴含多根愈合素导管,可以让阿拉克涅虫族从菌毯中抽取营养以治疗其他个体。</description>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Cloth_1Stage</ThingDef>
<AbilityDef>ARA_TerrainHeal_Ability</AbilityDef>
</descriptionHyperlinks>
<recipeMaker>
@@ -523,7 +495,6 @@
<label>阿拉克涅睡裙</label>
<description>阿拉克涅督虫们所着织物中的一种,可以使其在阿拉克捏菌毯上获得额外的休息效率速度,睡眠是虫巢少数需要频繁维持的需求,因此这套织物的价值不言而喻。</description>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Cloth_1Stage</ThingDef>
<AbilityDef>ARA_TerrainHeal_Ability</AbilityDef>
</descriptionHyperlinks>
<recipeMaker>
@@ -573,7 +544,6 @@
<label>阿拉克涅晚礼服</label>
<description>阿拉克涅督虫们所着织物中的一种,高贵又富有魅力,蕴含着强大的灵能力量,这件织物能够增幅穿着者的灵能力量。</description>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Cloth_2Stage</ThingDef>
<AbilityDef>ARA_TerrainHeal_Ability</AbilityDef>
</descriptionHyperlinks>
<tickerType>Normal</tickerType>
@@ -649,7 +619,6 @@
<label>阿拉克涅花嫁连衣裙</label>
<description>阿拉克涅督虫们所着织物中的一种,拥有摄人心魄的力量,可以抽取菌毯的力量发动夺取心智的能力,让敌方调转枪口攻击自己人。</description>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Cloth_2Stage</ThingDef>
<AbilityDef>ARA_TerrainTempt_Ability</AbilityDef>
</descriptionHyperlinks>
<recipeMaker>
@@ -699,7 +668,6 @@
<label>阿拉克涅卫兵装</label>
<description>阿拉克涅虫群中的高阶战士所着织物,她们能够发出震耳欲聋的咆哮,并且看上去给人一种意外的庄严感——只不过她们挥着咔咔作响的鳌钳将你的同伴撕裂时,所有美好的幻想都会成为泡影。</description>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Cloth_2Stage</ThingDef>
<AbilityDef>ARA_TerrorRoar_Ability</AbilityDef>
</descriptionHyperlinks>
<recipeMaker>

View File

@@ -5,9 +5,6 @@
<defName>ARA_MW_Bone_Sword</defName>
<label>武装器官"骨刃"</label>
<description>阿拉克涅虫群督虫使用基础近战武装器官,通过多根外露神经束与督虫的辅肢相连。尽管它只是一块坚硬的剑形骨片,但是丝毫不影响那些拥有无穷蛮力的阿拉克涅虫群督虫使用它将侵犯虫巢之敌一一斩首。</description>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Weapon</ThingDef>
</descriptionHyperlinks>
<weaponTags Inherit="False">
<li>ARA_Armed_Organ</li>
<li>ARA_Armed_Organ_Melee</li>
@@ -82,9 +79,6 @@
<defName>ARA_MW_Cartilage_Whip</defName>
<label>武装器官"软骨鞭"</label>
<description>阿拉克涅虫群督虫使用的近战武装器官,以节节软骨交错形成强韧的鞭子。这种武器在打击敌人时不仅会发出骇人的声响,还会使得对手疼痛难忍,并且以击打为主的钝器伤害也能很好地规避敌方装甲的防御。</description>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Weapon_1Stage</ThingDef>
</descriptionHyperlinks>
<weaponTags Inherit="False">
<li>ARA_Armed_Organ</li>
<li>ARA_Armed_Organ_Melee</li>
@@ -168,9 +162,6 @@
<defName>ARA_MW_Scything_Talons</defName>
<label>武装器官"镰爪"</label>
<description>阿拉克涅虫群督虫使用的近战武装器官,状似一柄巨型镰刀,可以和辅肢通过神经束进行连接。得益于其巨大的体积,其每次挥击将造成范围性的伤害,一次性可以击倒多个相邻目标。</description>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Weapon_2Stage</ThingDef>
</descriptionHyperlinks>
<weaponTags Inherit="False">
<li>ARA_Armed_Organ</li>
<li>ARA_Armed_Organ_Melee</li>
@@ -259,9 +250,6 @@
<description>阿拉克涅虫群督虫使用基础远程武装器官,外表就像一只拳套,可以通过神经束缠绕接在阿拉克涅督虫的辅肢上。这种武器小巧轻盈,虽然射程很短,但是面对敌人时能喷出一整排的带毒尖刺,把对手扎个透心凉。</description>
<tickerType>Normal</tickerType>
<techLevel>Medieval</techLevel>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Weapon</ThingDef>
</descriptionHyperlinks>
<graphicData>
<texPath>ArachnaeSwarm/Weapon/ARA_RW_Basic_Fist_Needle_Gun</texPath>
<graphicClass>Graphic_Single</graphicClass>
@@ -369,9 +357,6 @@
<description>阿拉克涅虫群督虫所使用的武装器官,拥有五排刺针管道,可以在联结神经束的指挥下交替发射大量的毒针,虽然准度较差但是威力不逊色于人类所使用的机枪。</description>
<tickerType>Normal</tickerType>
<techLevel>Medieval</techLevel>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Weapon_1Stage</ThingDef>
</descriptionHyperlinks>
<graphicData>
<texPath>ArachnaeSwarm/Weapon/ARA_RW_Toxic_Needle_MG</texPath>
<graphicClass>Graphic_Single</graphicClass>
@@ -465,9 +450,6 @@
<description>阿拉克涅虫群督虫所使用的武装器官,拥有双联装多排刺针短程管道,发射精度较差但是一次可以发射大量弹药,威力丝毫不逊色于人类的霰弹枪。</description>
<tickerType>Normal</tickerType>
<techLevel>Medieval</techLevel>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Weapon_1Stage</ThingDef>
</descriptionHyperlinks>
<graphicData>
<texPath>ArachnaeSwarm/Weapon/ARA_RW_Toxic_Needle_SG</texPath>
<graphicClass>Graphic_Single</graphicClass>
@@ -590,9 +572,6 @@
<description>阿拉克涅虫群的大型武装器官,拥有张牙舞爪的侵略性外形,其口器与一连串可以增生巨型棘刺的血链相连,并通过肌肉压缩获得极高的膛压以射出腔内破坏力惊人的棘刺。虫群从人类的武器上获得了灵感,为血链刺加入了伴生激素,使得血链棘刺炮的射速会随着射击的持续而增加。</description>
<tickerType>Normal</tickerType>
<techLevel>Medieval</techLevel>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Weapon_2Stage</ThingDef>
</descriptionHyperlinks>
<graphicData>
<texPath>ArachnaeSwarm/Weapon/ARA_RW_Basic_SniperCannon_Gun</texPath>
<graphicClass>Graphic_Single</graphicClass>
@@ -647,9 +626,7 @@
<comps>
<li Class="ArachnaeSwarm.CompProperties_ExtraIncubationInfo">
<cocoonDefs>
<li>ARA_Cocoon_Weapon_2Stage</li>
<li>ARA_Cocoon_Weapon_2Stage_From_Death</li>
<li>ARA_BioforgeIncubator_Thing</li>
<li>ARA_Equipment_Ootheca</li>
</cocoonDefs>
</li>
<li Class="ArachnaeSwarm.CompProperties_GiveHediffOnShot">
@@ -709,9 +686,6 @@
<description>阿拉克涅虫群的武装器官,虽然体积不是很大,但是通过肌肉压缩射出的棘刺穿透力极强,可以打穿成排的敌军。除此之外,这种武装器官也在下颌增生了一把小型骨刃,以供虫群使用其抵御近身威胁。</description>
<tickerType>Normal</tickerType>
<techLevel>Medieval</techLevel>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Weapon_2Stage</ThingDef>
</descriptionHyperlinks>
<graphicData>
<texPath>ArachnaeSwarm/Weapon/ARA_RW_Basic_Rail_Gun</texPath>
<graphicClass>Graphic_Single</graphicClass>
@@ -806,9 +780,6 @@
<description>阿拉克涅虫群督虫使用基础远程武装器官,可以通过肌肉的瞬间加压喷出阿拉克涅酸液。这种酸液能覆盖目标并灼烧所有粘上酸液的敌人。</description>
<tickerType>Normal</tickerType>
<techLevel>Medieval</techLevel>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Weapon</ThingDef>
</descriptionHyperlinks>
<graphicData>
<texPath>ArachnaeSwarm/Weapon/ARA_RW_Basic_Acid_Bladder_Gun</texPath>
<graphicClass>Graphic_Single</graphicClass>
@@ -916,9 +887,6 @@
<description>阿拉克涅虫群的大型远程武装器官,拥有布满酸腺的液囊和强健的肌肉纤管,可以向瞄准的方向喷射火酸热熔气团,覆盖范围内的敌人并融化它们的装甲和血肉。</description>
<tickerType>Normal</tickerType>
<techLevel>Medieval</techLevel>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Weapon_1Stage</ThingDef>
</descriptionHyperlinks>
<graphicData>
<texPath>ArachnaeSwarm/Weapon/ARA_RW_Basic_FireSpewer_Gun</texPath>
<graphicClass>Graphic_Single</graphicClass>
@@ -1067,9 +1035,6 @@
<description>阿拉克涅虫群督虫使用大型远程武装器官,膛内布满了强健的肌肉组织,可以在一瞬间的收缩后将一团酸液发射到空中,以在安全距离下对敌人的集群进行轰炸。</description>
<tickerType>Normal</tickerType>
<techLevel>Medieval</techLevel>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Weapon_2Stage</ThingDef>
</descriptionHyperlinks>
<graphicData>
<texPath>ArachnaeSwarm/Weapon/ARA_RW_Acid_Mortar</texPath>
<graphicClass>Graphic_Single</graphicClass>
@@ -1187,9 +1152,6 @@
<description>阿拉克涅虫群督虫使用基础远程武装器官,状似人类的手枪,可以发射由爆裂种辅虫构成的导弹。这种武装器官适应性和追踪能力很强,即使是不擅长射击的虫族使用这种武器也能有很好的表现。</description>
<tickerType>Normal</tickerType>
<techLevel>Medieval</techLevel>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Weapon_2Stage</ThingDef>
</descriptionHyperlinks>
<graphicData>
<texPath>ArachnaeSwarm/Weapon/ARA_RW_Missile_HG_Gun</texPath>
<graphicClass>Graphic_Single</graphicClass>
@@ -1319,9 +1281,6 @@
<description>阿拉克涅虫群的大型武装器官,可以以排山倒海的架势射出成排由爆裂种辅虫构成的导弹,强大的火力使其成为虫族构建血肉军团的核心之一。</description>
<tickerType>Normal</tickerType>
<techLevel>Medieval</techLevel>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Weapon_2Stage</ThingDef>
</descriptionHyperlinks>
<graphicData>
<texPath>ArachnaeSwarm/Weapon/ARA_RW_Missile_AR_Gun</texPath>
<graphicClass>Graphic_Single</graphicClass>
@@ -1451,9 +1410,6 @@
<description>阿拉克涅虫群督虫使用的远程武装器官,内部的腔室孕育了大量的天巢种,督虫们会将其作为导弹发射出去,这些天巢种在敌人后将持续啃咬敌人一段时间,并且从敌人身上脱落后也将继续攻击。</description>
<tickerType>Normal</tickerType>
<techLevel>Medieval</techLevel>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Weapon_1Stage</ThingDef>
</descriptionHyperlinks>
<graphicData>
<texPath>ArachnaeSwarm/Weapon/ARA_RW_Basic_SkyHive_Gun</texPath>
<graphicClass>Graphic_Single</graphicClass>
@@ -1582,9 +1538,6 @@
<description>阿拉克涅虫群督虫使用的大型远程武装器官,通过从携带大量电荷的细胞中释放能量,虫群可以使用这种武装器官在敌人的集群中发起连锁闪电打击。</description>
<tickerType>Normal</tickerType>
<techLevel>Medieval</techLevel>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Weapon_1Stage</ThingDef>
</descriptionHyperlinks>
<graphicData>
<texPath>ArachnaeSwarm/Weapon/ARA_RW_Large_Arc_Gun</texPath>
<graphicClass>Graphic_Single</graphicClass>
@@ -1719,9 +1672,6 @@
<description>阿拉克涅虫群督虫使用远程武装器官,这种武装器官可以喷射出能快速冷却目标的射流束——相比起共生肌群上的版本,这个手持版本更多地是起到控制特定目标而非击杀目标的功能。</description>
<tickerType>Normal</tickerType>
<techLevel>Medieval</techLevel>
<descriptionHyperlinks>
<ThingDef>ARA_Cocoon_Weapon_2Stage</ThingDef>
</descriptionHyperlinks>
<graphicData>
<texPath>ArachnaeSwarm/Weapon/ARA_RW_Basic_Fist_Needle_Gun</texPath>
<graphicClass>Graphic_Single</graphicClass>
@@ -1816,13 +1766,6 @@
<tradeability>None</tradeability>
<thingSetMakerTags Inherit="False" />
<comps>
<!-- <li Class="ArachnaeSwarm.CompProperties_ExtraIncubationInfo">
<cocoonDefs>
<li>ARA_Cocoon_Weapon_2Stage</li>
<li>ARA_Cocoon_Weapon_2Stage_From_Death</li>
<li>ARA_BioforgeIncubator_Thing</li>
</cocoonDefs>
</li> -->
<li Class="ArachnaeSwarm.CompProperties_CustomUniqueWeapon" MayRequire="Ludeon.RimWorld.Odyssey">
<forcedTraits>
<li>ARA_Weapon_Damage_Icez</li>
@@ -2190,12 +2133,6 @@
<tradeability>None</tradeability>
<thingSetMakerTags Inherit="False" />
<comps>
<!-- <li Class="ArachnaeSwarm.CompProperties_ExtraIncubationInfo">
<cocoonDefs>
<li>ARA_Cocoon_Weapon_2Stage</li>
<li>ARA_BioforgeIncubator_Thing</li>
</cocoonDefs>
</li> -->
<li Class="ArachnaeSwarm.CompProperties_CustomUniqueWeapon" MayRequire="Ludeon.RimWorld.Odyssey">
<forcedTraits>
<li>ARA_Huge_Weapon</li>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<TerrainDef ParentName="NaturalTerrainBase">
<TerrainDef ParentName="FloorBase">
<defName>ARA_InsectCreep</defName>
<label>阿拉克涅菌毯</label>
<description>阿拉克涅虫族所铺设的由真菌、甲壳素分泌物混合得到的地面,会自动在各种拉克涅虫族建筑附近蔓延。这种奇特的结构质地紧密且暗藏大量营养输送组织,可以支撑重型建筑、种植作物、加速其上的阿拉克涅虫族移动速度,但是除了虫族以外没人想踩在这坨软乎乎的活体结构上。</description>
@@ -16,13 +16,13 @@
<renderPrecedence>330</renderPrecedence>
<pathCost>0</pathCost>
<generatedFilth>Filth_Slime</generatedFilth>
<researchPrerequisites>
<li>ARA_Base_Technology</li>
</researchPrerequisites>
<filthAcceptanceMask>
<li>Unnatural</li>
</filthAcceptanceMask>
<natural>true</natural>
<researchPrerequisites>
<li>ARA_Base_Technology</li>
</researchPrerequisites>
<!-- <natural>true</natural> -->
<takeFootprints>True</takeFootprints>
<avoidWander>false</avoidWander>
<statBases>
@@ -51,54 +51,6 @@
<li>Insect</li>
</tags> -->
</TerrainDef>
<TerrainDef ParentName="FloorBase">
<defName>ARA_InsectCreepFloor</defName>
<label>阿拉克涅强固菌毯</label>
<description>由阿拉克涅虫族所铺设的由真菌、甲壳素分泌物混合得到的地面,性质类似于阿拉克涅菌毯,不过可以在支撑结构上蔓延,以作为虫群的逆重飞船地基。</description>
<texturePath>ArachnaeSwarm/Terrain/Surfaces/ARA_InsectCreep</texturePath>
<pollutionTintColor>(0.95, 0.95, 0.93, 1)</pollutionTintColor>
<color>(209, 207, 184)</color>
<fertility>0</fertility>
<edgeType>FadeRough</edgeType>
<renderPrecedence>399</renderPrecedence>
<constructEffect>ConstructMetal</constructEffect>
<isPaintable>true</isPaintable>
<designationCategory>ARA_Buildings</designationCategory>
<isFoundation>true</isFoundation>
<preventCraters>true</preventCraters>
<designationHotKey>Misc9</designationHotKey>
<researchPrerequisites>
<li>ARA_Base_Technology</li>
</researchPrerequisites>
<affordances>
<li>ARA_Creep</li>
<li>Substructure</li>
</affordances>
<statBases>
<Beauty>0</Beauty>
<CleaningTimeFactor>0.25</CleaningTimeFactor>
<Cleanliness>0</Cleanliness>
<Flammability>0</Flammability>
<WorkToBuild>100</WorkToBuild>
</statBases>
<costList>
<GravlitePanel>1</GravlitePanel>
<Steel>2</Steel>
<ARA_Carapace>2</ARA_Carapace>
</costList>
<uiOrder>1000</uiOrder>
<requireInspectedGravEngine>true</requireInspectedGravEngine>
<terrainAffordanceNeeded>Walkable</terrainAffordanceNeeded>
<resourcesFractionWhenDeconstructed>1</resourcesFractionWhenDeconstructed>
<tags>
<li>ARA_Creep</li>
<li>Substructure</li>
</tags>
<placeWorkers>
<li>PlaceWorker_InSubstructureFootprint</li>
<li>PlaceWorker_BuildingsValidOverSubstructure</li>
</placeWorkers>
</TerrainDef>
<TerrainDef ParentName="FloorBase">
<defName>ARA_InsectCreepTile</defName>
<label>阿拉克涅菌毯砖</label>
@@ -172,7 +124,7 @@
<building>
<isAirtight>true</isAirtight>
<!-- <isNaturalRock>true</isNaturalRock> -->
<!-- <smoothedThing>SmoothedGranite</smoothedThing> -->
<smoothedThing>ARA_SmoothedInsectWall</smoothedThing>
<blueprintGraphicData>
<texPath>ArachnaeSwarm/Building/Linked/ARA_InsectWall_Blueprint</texPath>
</blueprintGraphicData>
@@ -211,6 +163,30 @@
</li>
</damageMultipliers>
</ThingDef>
<ThingDef ParentName="GraniteBase">
<defName>ARA_SmoothedInsectWall</defName>
<label>光滑的阿拉克涅甲壳墙</label>
<description>阿拉克涅工蜂将硬质材料和甲壳素混合堆起来形成的墙壁,虫族对这片墙壁进行了精心打磨,质地坚硬的同时看起来美观多了。</description>
<uiIconPath>Things/Building/Linked/WallSmooth_MenuIcon</uiIconPath>
<graphicData>
<texPath>Things/Building/Linked/RockSmooth_Atlas</texPath>
<color>(209, 207, 184)</color>
</graphicData>
<statBases>
<MarketValue>7</MarketValue>
<Beauty>1</Beauty>
<MaxHitPoints>1000</MaxHitPoints>
</statBases>
<building>
<isNaturalRock>false</isNaturalRock>
<canBuildNonEdificesUnder>true</canBuildNonEdificesUnder>
<artificialForMeditationPurposes>false</artificialForMeditationPurposes>
<smoothedThing />
<paintable>true</paintable>
</building>
<saveCompressible>false</saveCompressible>
<repairEffect>Repair</repairEffect>
</ThingDef>
<ThingDef ParentName="DoorBase">
<defName>ARA_InsectDoor</defName>
<label>阿拉克涅甲壳门</label>
@@ -290,6 +266,121 @@
<blueprintClass>Blueprint_Build</blueprintClass>
<ai_chillDestination>false</ai_chillDestination>
<smoothedThing>ARA_SmoothedInsectDoor</smoothedThing>
<isSupportDoor>true</isSupportDoor>
<blueprintGraphicData>
<texPath>ArachnaeSwarm/Building/Door/ARA_InsectDoor_BluePrint</texPath>
</blueprintGraphicData>
<!-- <doorTopGraphic>
<texPath>ArachnaeSwarm/Building/Door/ARA_InsectDoor_Top</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>(1.4, 1.2)</drawSize>
</doorTopGraphic> -->
<doorSupportGraphic>
<texPath>ArachnaeSwarm/Building/Door/ARA_InsectDoor_Support</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>(1.4, 1.2)</drawSize>
</doorSupportGraphic>
<relatedBuildCommands>
<li>ARA_InsectWall</li>
</relatedBuildCommands>
</building>
<uiOrder>2505</uiOrder>
<uiIconPath>ArachnaeSwarm/Building/Door/ARA_InsectDoor_Icon</uiIconPath>
<designationHotKey>Misc2</designationHotKey>
<constructionSkillPrerequisite>6</constructionSkillPrerequisite>
<comps>
<li Class="CompProperties_Forbiddable">
<allowNonPlayer>true</allowNonPlayer>
</li>
<li Class="CompProperties_Power">
<compClass>CompPowerTrader</compClass>
<basePowerConsumption>0</basePowerConsumption>
<transmitsPower>true</transmitsPower>
</li>
</comps>
</ThingDef>
<ThingDef ParentName="DoorBase">
<defName>ARA_SmoothedInsectDoor</defName>
<label>光滑的阿拉克涅甲壳门</label>
<description>阿拉克涅虫巢的入口,主体由硬质材料和甲壳素混合而成,而开合机构是没有完整意识的阿拉克涅虫组织结构,这使得其可以实现自动开关,不需要在阿拉克涅菌毯上建造。\n\n它已经被虫群打磨过现在光滑而美观</description>
<thingClass>Building_MultiTileDoor</thingClass>
<category>Building</category>
<altitudeLayer>DoorMoveable</altitudeLayer>
<fillPercent>1</fillPercent>
<useHitPoints>true</useHitPoints>
<graphicData>
<texPath>ArachnaeSwarm/Building/Door/ARA_InsectDoor</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<shaderType>CutoutComplex</shaderType>
<shadowData>
<volume>(0.7, 0.6, 0.7)</volume>
<offset>(0,0,-0.1)</offset>
</shadowData>
<damageData>
<!-- no damage marks because they don't move with the door
<rect>(0,0.12,1,0.76)</rect>-->
<enabled>false</enabled>
</damageData>
</graphicData>
<statBases>
<MarketValue>10</MarketValue>
<MaxHitPoints>1200</MaxHitPoints>
<Flammability>0</Flammability>
<WorkToBuild>1000</WorkToBuild>
<Beauty>0</Beauty>
<DoorOpenSpeed>2</DoorOpenSpeed>
</statBases>
<costStuffCount>10</costStuffCount>
<stuffCategories Inherit="False">
<li>Woody</li>
<li>Stony</li>
<li>Metallic</li>
</stuffCategories>
<costList>
<ARA_Carapace>5</ARA_Carapace>
<ARA_InsectJelly>1</ARA_InsectJelly>
</costList>
<leaveResourcesWhenKilled>false</leaveResourcesWhenKilled>
<selectable>true</selectable>
<tickerType>Normal</tickerType>
<researchPrerequisites>
<li>ARA_Base_Technology</li>
</researchPrerequisites>
<!-- <rotatable>false</rotatable> -->
<!--<soundImpactDefault>BulletImpact_Metal</soundImpactDefault>-->
<useStuffTerrainAffordance>false</useStuffTerrainAffordance>
<terrainAffordanceNeeded>Heavy</terrainAffordanceNeeded>
<!-- <terrainAffordanceNeeded>ARA_Creep</terrainAffordanceNeeded> -->
<designationCategory>ARA_Buildings</designationCategory>
<holdsRoof>true</holdsRoof>
<staticSunShadowHeight>0</staticSunShadowHeight>
<blockLight>true</blockLight>
<drawerType>RealtimeOnly</drawerType>
<repairEffect>EatVegetarian</repairEffect>
<damageMultipliers Inherit="False">
<li>
<damageDef>Bomb</damageDef>
<multiplier>0.1</multiplier>
</li>
<li>
<damageDef>Thump</damageDef>
<multiplier>0.1</multiplier>
</li>
</damageMultipliers>
<building>
<smoothedThing />
<paintable>true</paintable>
<isInert>true</isInert>
<canPlaceOverWall>true</canPlaceOverWall>
<soundDoorOpenPowered>Door_OpenPowered</soundDoorOpenPowered>
<soundDoorClosePowered>Door_ClosePowered</soundDoorClosePowered>
<soundDoorOpenManual>Door_OpenManual</soundDoorOpenManual>
<soundDoorCloseManual>Door_CloseManual</soundDoorCloseManual>
<blueprintClass>Blueprint_Build</blueprintClass>
<ai_chillDestination>false</ai_chillDestination>
<isSupportDoor>true</isSupportDoor>
<blueprintGraphicData>
<texPath>ArachnaeSwarm/Building/Door/ARA_InsectDoor_BluePrint</texPath>
@@ -971,12 +1062,6 @@
<li>ARA_InsectCreep</li>
</relatedTerrain>
</building>
<comps>
<li Class="ArachnaeSwarm.CompProperties_DelayedTerrainSpawn">
<terrainToSpawn>ARA_InsectCreep</terrainToSpawn>
<spawnRadius>5</spawnRadius>
</li>
</comps>
</ThingDef>
<ThingDef ParentName="BenchBase">

View File

@@ -55,9 +55,6 @@
<relatedBuildCommands>
<li>GravshipHull</li>
</relatedBuildCommands>
<relatedTerrain>
<li>ARA_InsectCreepFloor</li>
</relatedTerrain>
<blueprintClass>Blueprint_Build</blueprintClass>
<blueprintGraphicData>
<texPath>ArachnaeSwarm/Building/ARA_HiveShip_Heart_Icon</texPath>

View File

@@ -58,8 +58,6 @@
<linkableBuildings>
<!-- 这里列出所有可以被供能的建筑的 defName -->
<!-- 您之后可以手动添加,例如: -->
<li>ARA_BioforgeIncubator</li>
<li>ARA_BioforgeIncubator_Thing</li>
<li>ARA_GrowthVat</li>
<li>ARA_MorphableResearchBench</li>
<li>ARANutrientDispenser</li>
@@ -202,8 +200,6 @@
<li Class="ArachnaeSwarm.CompProperties_GrowthVatBooster">
<linkableBuildings>
<li>ARA_NutrientNetworkTower</li>
<li>ARA_BioforgeIncubator</li>
<li>ARA_BioforgeIncubator_Thing</li>
</linkableBuildings>
<maxSimultaneous>15</maxSimultaneous>
<maxDistance>20</maxDistance>
@@ -322,268 +318,6 @@
</researchPrerequisites>
</ThingDef>
<!-- 3. 主建筑 "生物孵化池" -->
<ThingDef ParentName="BuildingBase">
<defName>ARA_BioforgeIncubator_Thing</defName>
<label>物品孵化池</label>
<description>一个大型的、需要消耗大量营养物质的孵化设施,可以同时孵化多个物品,并能通过链接外部设备来提高效率。</description>
<graphicData>
<texPath>ArachnaeSwarm/Building/ARA_BioforgeIncubator_Thing</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>CutoutComplex</shaderType>
<drawRotated>false</drawRotated>
<drawSize>(5.5,6.5)</drawSize>
<drawOffset>(0, 2, 0.5)</drawOffset>
<shadowData>
<volume>(2.75, 1.2, 2)</volume>
<offset>(0.2,0,-1.15)</offset>
</shadowData>
</graphicData>
<size>(5,5)</size>
<rotatable>false</rotatable>
<tickerType>Normal</tickerType>
<stuffCategories Inherit="False" />
<costStuffCount>0</costStuffCount>
<costList>
<ARA_Carapace>200</ARA_Carapace>
<ARA_InsectJelly>40</ARA_InsectJelly>
<ARA_Activated_Bacterium>10</ARA_Activated_Bacterium>
</costList>
<castEdgeShadows>false</castEdgeShadows>
<staticSunShadowHeight>0</staticSunShadowHeight>
<altitudeLayer>Building</altitudeLayer>
<passability>PassThroughOnly</passability>
<terrainAffordanceNeeded>ARA_Creep</terrainAffordanceNeeded>
<pathCost>50</pathCost>
<statBases>
<MarketValue>20000</MarketValue>
<MaxHitPoints>250</MaxHitPoints>
<WorkToBuild>2800</WorkToBuild>
<Flammability>1.0</Flammability>
</statBases>
<placeWorkers>
<li>PlaceWorker_PreventInteractionSpotOverlap</li>
</placeWorkers>
<fillPercent>0.8</fillPercent>
<interactionCellOffset>(0,0,-1)</interactionCellOffset>
<hasInteractionCell>true</hasInteractionCell>
<designationCategory>ARA_Buildings</designationCategory>
<uiOrder>2600</uiOrder>
<surfaceType>Item</surfaceType>
<building>
<workTableRoomRole>Laboratory</workTableRoomRole>
<workTableNotInRoomRoleFactor>0.8</workTableNotInRoomRoleFactor>
<relatedTerrain>
<li>ARA_InsectCreep</li>
</relatedTerrain>
</building>
<researchPrerequisites>
<li>ARA_Technology_4NPT</li>
</researchPrerequisites>
<comps>
<!-- a. 我们新的队列物品生产组件 -->
<li Class="ArachnaeSwarm.CompProperties_QueuedInteractiveProducer">
<!-- 队列和交互设置 -->
<productionQueueLimit>3</productionQueueLimit>
<minNutritionToStart>1.0</minNutritionToStart>
<whitelist>
<li>ArachnaeNode_Race_WeaponSmith</li> <!-- 示例:允许普通殖民者操作 -->
</whitelist>
<!-- 质量系统设置 -->
<minSafeTemperature>10</minSafeTemperature>
<maxSafeTemperature>30</maxSafeTemperature>
<penaltyPerDegreePerTick>0.00001</penaltyPerDegreePerTick>
<qualityThresholds>
<li>
<quality>Legendary</quality>
<threshold>0.99</threshold>
</li>
<li>
<quality>Masterwork</quality>
<threshold>0.90</threshold>
</li>
<li>
<quality>Excellent</quality>
<threshold>0.70</threshold>
</li>
<li>
<quality>Good</quality>
<threshold>0.50</threshold>
</li>
<li>
<quality>Normal</quality>
<threshold>0.20</threshold>
</li>
<li>
<quality>Poor</quality>
<threshold>0.10</threshold>
</li>
</qualityThresholds>
</li>
<!-- b. 我们的营养燃料组件 -->
<li Class="ArachnaeSwarm.CompProperties_RefuelableNutrition">
<fuelCapacity>300.0</fuelCapacity>
<fuelFilter>
<thingDefs>
<li>ARA_InsectJelly</li>
</thingDefs>
</fuelFilter>
<fuelGizmoLabel>虫蜜</fuelGizmoLabel>
<showAllowAutoRefuelToggle>true</showAllowAutoRefuelToggle>
<targetFuelLevelConfigurable>true</targetFuelLevelConfigurable>
</li>
<!-- c. 原版的设施链接接收组件 -->
<li Class="CompProperties_AffectedByFacilities">
<linkableFacilities>
<li>ARA_NutrientNetworkTower</li>
<li>ARA_GrowthVat</li>
</linkableFacilities>
</li>
<li Class="ArachnaeSwarm.CompProperties_DelayedTerrainSpawn">
<terrainToSpawn>ARA_InsectCreep</terrainToSpawn>
<spawnRadius>8</spawnRadius>
</li>
</comps>
</ThingDef>
<ThingDef ParentName="BuildingBase">
<defName>ARA_BioforgeIncubator</defName>
<label>督虫孵化池</label>
<description>一个大型的、需要消耗大量营养物质的孵化设施,可以同时孵化多个单位,并能通过链接外部设备来提高效率。</description>
<graphicData>
<texPath>ArachnaeSwarm/Building/ARA_BioforgeIncubator</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>CutoutComplex</shaderType>
<drawSize>(5.5,6.5)</drawSize>
<drawRotated>false</drawRotated>
<drawOffset>(0, 2, 0.5)</drawOffset>
<shadowData>
<volume>(2.75, 1.4, 2)</volume>
<offset>(0,0,-1.25)</offset>
</shadowData>
</graphicData>
<size>(5,5)</size>
<tickerType>Normal</tickerType>
<rotatable>false</rotatable>
<stuffCategories Inherit="False" />
<costStuffCount>0</costStuffCount>
<costList>
<ARA_Carapace>200</ARA_Carapace>
<ARA_InsectJelly>40</ARA_InsectJelly>
<ARA_Activated_Bacterium>10</ARA_Activated_Bacterium>
</costList>
<castEdgeShadows>false</castEdgeShadows>
<staticSunShadowHeight>0</staticSunShadowHeight>
<altitudeLayer>Building</altitudeLayer>
<passability>PassThroughOnly</passability>
<terrainAffordanceNeeded>ARA_Creep</terrainAffordanceNeeded>
<designationCategory>ARA_Buildings</designationCategory>
<pathCost>50</pathCost>
<researchPrerequisites>
<li>ARA_Technology_4NPT</li>
</researchPrerequisites>
<statBases>
<MarketValue>20000</MarketValue>
<MaxHitPoints>250</MaxHitPoints>
<WorkToBuild>2800</WorkToBuild>
<Flammability>1.0</Flammability>
</statBases>
<placeWorkers>
<li>PlaceWorker_PreventInteractionSpotOverlap</li>
</placeWorkers>
<fillPercent>0.8</fillPercent>
<interactionCellOffset>(0,0,-1)</interactionCellOffset>
<hasInteractionCell>true</hasInteractionCell>
<!-- <designationCategory>ARA_Buildings</designationCategory> -->
<uiOrder>2600</uiOrder>
<surfaceType>Item</surfaceType>
<building>
<workTableRoomRole>Laboratory</workTableRoomRole>
<workTableNotInRoomRoleFactor>0.8</workTableNotInRoomRoleFactor>
<relatedTerrain>
<li>ARA_InsectCreep</li>
</relatedTerrain>
</building>
<comps>
<!-- a. 我们自己的队列生产组件 -->
<li Class="ArachnaeSwarm.CompProperties_QueuedPawnSpawner">
<productionQueueLimit>5</productionQueueLimit>
<minNutritionToStart>0.5</minNutritionToStart>
<whitelist>
<li>ARA_ArachnaeQueen</li>
</whitelist>
<spawnablePawns>
<li>
<pawnKind>ArachnaeNode_Race_Myrmecocystus</pawnKind>
<delayTicks>240000</delayTicks>
<totalNutritionNeeded>100.0</totalNutritionNeeded>
</li>
<li>
<pawnKind>ArachnaeNode_Race_ShieldHead</pawnKind>
<delayTicks>180000</delayTicks>
<totalNutritionNeeded>40.0</totalNutritionNeeded>
</li>
<li>
<pawnKind>ArachnaeNode_Race_WeaponSmith</pawnKind>
<delayTicks>180000</delayTicks>
<totalNutritionNeeded>40.0</totalNutritionNeeded>
</li>
<li>
<pawnKind>ArachnaeNode_Race_Fighter</pawnKind>
<delayTicks>90000</delayTicks>
<totalNutritionNeeded>20.0</totalNutritionNeeded>
<requiredResearch>ARA_Technology_1KYC</requiredResearch>
</li>
<li>
<pawnKind>ArachnaeNode_Race_Smokepop</pawnKind>
<delayTicks>180000</delayTicks>
<totalNutritionNeeded>60.0</totalNutritionNeeded>
<requiredResearch>ARA_Technology_5KYC</requiredResearch>
</li>
<li>
<pawnKind>ArachnaeNode_Race_Skyraider</pawnKind>
<delayTicks>120000</delayTicks>
<totalNutritionNeeded>80.0</totalNutritionNeeded>
<requiredResearch>ARA_Technology_2KYC</requiredResearch>
</li>
<li>
<pawnKind>ARA_MimicNematodeShamblerSwarmer</pawnKind>
<delayTicks>600</delayTicks>
<totalNutritionNeeded>10.0</totalNutritionNeeded>
<requiredResearch>ARA_Technology_6MEN</requiredResearch>
</li>
</spawnablePawns>
</li>
<!-- b. 我们的营养燃料组件 -->
<li Class="ArachnaeSwarm.CompProperties_RefuelableNutrition">
<fuelCapacity>20.0</fuelCapacity>
<fuelFilter>
<thingDefs>
<li>ARA_InsectJelly</li>
</thingDefs>
</fuelFilter>
<fuelGizmoLabel>虫蜜</fuelGizmoLabel>
<showAllowAutoRefuelToggle>true</showAllowAutoRefuelToggle>
<targetFuelLevelConfigurable>true</targetFuelLevelConfigurable>
</li>
<!-- c. 原版的设施链接接收组件 -->
<li Class="CompProperties_AffectedByFacilities">
<linkableFacilities>
<li>ARA_NutrientNetworkTower</li>
<li>ARA_GrowthVat</li>
</linkableFacilities>
</li>
<li Class="ArachnaeSwarm.CompProperties_DelayedTerrainSpawn">
<terrainToSpawn>ARA_InsectCreep</terrainToSpawn>
<spawnRadius>8</spawnRadius>
</li>
</comps>
</ThingDef>
<ThingDef ParentName="BuildingBase">
<defName>ARA_MorphableResearchBench</defName>
<!-- <hasInteractionCell>true</hasInteractionCell>

View File

@@ -63,7 +63,7 @@
<ThingDef ParentName="BuildingNaturalBase">
<defName>ARA_Pawn_Ootheca</defName>
<label>阿拉克涅虫卵囊</label>
<description>一个脆弱、易燃、黏滑的囊状物,是阿拉克涅女皇种所诞之卵,内含哺育一只新督虫所需的营养和遗传物质。</description>
<description>一个脆弱、易燃、黏滑的囊状物,内含哺育一只新督虫所需的营养和遗传物质。它需要由阿拉克涅幼虫种进入以启动孵化进程。</description>
<statBases>
<MarketValue>1000</MarketValue>
</statBases>
@@ -221,58 +221,158 @@
<pawnKind>ArachnaeNode_Race_ShieldHead</pawnKind>
<daysRequired>2</daysRequired>
<buttonIconPath>UI/Buttons/IncubateUnitA</buttonIconPath>
<extraHediffs>
<li>ARA_Incubator_1_Reward_Hediffs</li>
<li>ARA_Incubator_2_Reward_Hediffs</li>
<li>ARA_Incubator_3_Reward_Hediffs</li>
<li>ARA_Incubator_4_Reward_Hediffs</li>
<li>ARA_Incubator_5_Reward_Hediffs</li>
<li>ARA_Incubator_6_Reward_Hediffs</li>
<li>ARA_Incubator_7_Reward_Hediffs</li>
<li>ARA_Incubator_8_Reward_Hediffs</li>
</extraHediffs>
</li>
<li>
<pawnKind>ArachnaeNode_Race_WeaponSmith</pawnKind>
<daysRequired>2</daysRequired>
<buttonIconPath>UI/Buttons/IncubateUnitA</buttonIconPath>
<extraHediffs>
<li>ARA_Incubator_1_Reward_Hediffs</li>
<li>ARA_Incubator_2_Reward_Hediffs</li>
<li>ARA_Incubator_3_Reward_Hediffs</li>
<li>ARA_Incubator_4_Reward_Hediffs</li>
<li>ARA_Incubator_5_Reward_Hediffs</li>
<li>ARA_Incubator_6_Reward_Hediffs</li>
<li>ARA_Incubator_7_Reward_Hediffs</li>
<li>ARA_Incubator_8_Reward_Hediffs</li>
</extraHediffs>
</li>
<li>
<pawnKind>ArachnaeNode_Race_Fighter</pawnKind>
<daysRequired>2</daysRequired>
<buttonIconPath>UI/Buttons/IncubateUnitA</buttonIconPath>
<requiredResearch>ARA_Technology_1KYC</requiredResearch>
<extraHediffs>
<li>ARA_Incubator_1_Reward_Hediffs</li>
<li>ARA_Incubator_2_Reward_Hediffs</li>
<li>ARA_Incubator_3_Reward_Hediffs</li>
<li>ARA_Incubator_4_Reward_Hediffs</li>
<li>ARA_Incubator_5_Reward_Hediffs</li>
<li>ARA_Incubator_6_Reward_Hediffs</li>
<li>ARA_Incubator_7_Reward_Hediffs</li>
<li>ARA_Incubator_8_Reward_Hediffs</li>
</extraHediffs>
</li>
<li>
<pawnKind>ArachnaeNode_Race_Myrmecocystus</pawnKind>
<daysRequired>3</daysRequired>
<buttonIconPath>UI/Buttons/IncubateUnitA</buttonIconPath>
<extraHediffs>
<li>ARA_Incubator_1_Reward_Hediffs</li>
<li>ARA_Incubator_2_Reward_Hediffs</li>
<li>ARA_Incubator_3_Reward_Hediffs</li>
<li>ARA_Incubator_4_Reward_Hediffs</li>
<li>ARA_Incubator_5_Reward_Hediffs</li>
<li>ARA_Incubator_6_Reward_Hediffs</li>
<li>ARA_Incubator_7_Reward_Hediffs</li>
<li>ARA_Incubator_8_Reward_Hediffs</li>
</extraHediffs>
</li>
<li>
<pawnKind>ArachnaeNode_Race_Facehugger</pawnKind>
<daysRequired>2</daysRequired>
<buttonIconPath>UI/Buttons/IncubateUnitA</buttonIconPath>
<requiredResearch>ARA_Technology_4KYC</requiredResearch>
<extraHediffs>
<li>ARA_Incubator_1_Reward_Hediffs</li>
<li>ARA_Incubator_2_Reward_Hediffs</li>
<li>ARA_Incubator_3_Reward_Hediffs</li>
<li>ARA_Incubator_4_Reward_Hediffs</li>
<li>ARA_Incubator_5_Reward_Hediffs</li>
<li>ARA_Incubator_6_Reward_Hediffs</li>
<li>ARA_Incubator_7_Reward_Hediffs</li>
<li>ARA_Incubator_8_Reward_Hediffs</li>
</extraHediffs>
</li>
<li>
<pawnKind>ARA_MimicNematodeShamblerSwarmer</pawnKind>
<daysRequired>1</daysRequired>
<buttonIconPath>UI/Buttons/IncubateUnitA</buttonIconPath>
<requiredResearch>ARA_Technology_6MEN</requiredResearch>
<extraHediffs>
<li>ARA_Incubator_1_Reward_Hediffs</li>
<li>ARA_Incubator_2_Reward_Hediffs</li>
<li>ARA_Incubator_3_Reward_Hediffs</li>
<li>ARA_Incubator_4_Reward_Hediffs</li>
<li>ARA_Incubator_5_Reward_Hediffs</li>
<li>ARA_Incubator_6_Reward_Hediffs</li>
<li>ARA_Incubator_7_Reward_Hediffs</li>
<li>ARA_Incubator_8_Reward_Hediffs</li>
</extraHediffs>
</li>
<li>
<pawnKind>ArachnaeNode_Race_Smokepop</pawnKind>
<daysRequired>6</daysRequired>
<buttonIconPath>UI/Buttons/IncubateUnitA</buttonIconPath>
<requiredResearch>ARA_Technology_5KYC</requiredResearch>
<extraHediffs>
<li>ARA_Incubator_1_Reward_Hediffs</li>
<li>ARA_Incubator_2_Reward_Hediffs</li>
<li>ARA_Incubator_3_Reward_Hediffs</li>
<li>ARA_Incubator_4_Reward_Hediffs</li>
<li>ARA_Incubator_5_Reward_Hediffs</li>
<li>ARA_Incubator_6_Reward_Hediffs</li>
<li>ARA_Incubator_7_Reward_Hediffs</li>
<li>ARA_Incubator_8_Reward_Hediffs</li>
</extraHediffs>
</li>
<li>
<pawnKind>ArachnaeNode_Race_NeuroSwarm</pawnKind>
<daysRequired>10</daysRequired>
<buttonIconPath>UI/Buttons/IncubateUnitA</buttonIconPath>
<requiredResearch>ARA_Technology_6KYC</requiredResearch>
<extraHediffs>
<li>ARA_Incubator_1_Reward_Hediffs</li>
<li>ARA_Incubator_2_Reward_Hediffs</li>
<li>ARA_Incubator_3_Reward_Hediffs</li>
<li>ARA_Incubator_4_Reward_Hediffs</li>
<li>ARA_Incubator_5_Reward_Hediffs</li>
<li>ARA_Incubator_6_Reward_Hediffs</li>
<li>ARA_Incubator_7_Reward_Hediffs</li>
<li>ARA_Incubator_8_Reward_Hediffs</li>
</extraHediffs>
</li>
<li>
<pawnKind>ArachnaeNode_Race_Skyraider</pawnKind>
<daysRequired>6</daysRequired>
<buttonIconPath>UI/Buttons/IncubateUnitA</buttonIconPath>
<requiredResearch>ARA_Technology_2KYC</requiredResearch>
<extraHediffs>
<li>ARA_Incubator_1_Reward_Hediffs</li>
<li>ARA_Incubator_2_Reward_Hediffs</li>
<li>ARA_Incubator_3_Reward_Hediffs</li>
<li>ARA_Incubator_4_Reward_Hediffs</li>
<li>ARA_Incubator_5_Reward_Hediffs</li>
<li>ARA_Incubator_6_Reward_Hediffs</li>
<li>ARA_Incubator_7_Reward_Hediffs</li>
<li>ARA_Incubator_8_Reward_Hediffs</li>
</extraHediffs>
</li>
<li>
<pawnKind>ArachnaeNode_Race_Praetorian</pawnKind>
<daysRequired>12</daysRequired>
<buttonIconPath>UI/Buttons/IncubateUnitA</buttonIconPath>
<requiredResearch>ARA_Technology_7KYC</requiredResearch>
<extraHediffs>
<li>ARA_Incubator_1_Reward_Hediffs</li>
<li>ARA_Incubator_2_Reward_Hediffs</li>
<li>ARA_Incubator_3_Reward_Hediffs</li>
<li>ARA_Incubator_4_Reward_Hediffs</li>
<li>ARA_Incubator_5_Reward_Hediffs</li>
<li>ARA_Incubator_6_Reward_Hediffs</li>
<li>ARA_Incubator_7_Reward_Hediffs</li>
<li>ARA_Incubator_8_Reward_Hediffs</li>
</extraHediffs>
</li>
</incubationConfigs>
</li>
@@ -294,7 +394,7 @@
<ThingDef ParentName="BuildingNaturalBase">
<defName>ARA_Equipment_Ootheca</defName>
<label>阿拉克涅茧</label>
<description>一个脆弱、易燃、黏滑的囊状物,是阿拉克涅女皇种所诞之卵,内含哺育一只新督虫所需的营养和遗传物质</description>
<description>如宝塔般的阿拉克涅活体结构,可以孵化出变态发育后的不完全个体——武装器官和织物。它需要由阿拉克涅幼虫种进入以启动孵化进程</description>
<statBases>
<MarketValue>1000</MarketValue>
</statBases>
@@ -411,4 +511,77 @@
</li>
</comps>
</ThingDef>
<ThingDef ParentName="BuildingNaturalBase">
<defName>ARA_InteractiveEggSac_Techprint</defName>
<label>阿拉克涅基因试验卵</label>
<description>一个内部近乎无序发育的卵,无法孵化任何虫族,主要用于实验变异方向,可以产出阿拉克涅虫族科技的蓝图,阿拉克涅女皇种可以通过与其交互将其激活。\n\n该虫卵需要使用大量精华素维持工作并且能研究的项目以其落地时的研究完成度为准那些尚未解锁的科技将无法孵化其蓝图。</description>
<thingClass>Building</thingClass>
<graphicData>
<texPath>ArachnaeSwarm/Building/ARA_InteractiveEggSac_Techprint</texPath>
<graphicClass>Graphic_Single</graphicClass>
<drawSize>(1.1,1.1)</drawSize>
<shadowData>
<volume>(0.7, 0.4, 0.7)</volume>
<offset>(0,0,-0.1)</offset>
</shadowData>
</graphicData>
<size>(1,1)</size>
<altitudeLayer>Building</altitudeLayer>
<passability>PassThroughOnly</passability>
<fillPercent>0.3</fillPercent>
<rotatable>false</rotatable>
<tickerType>Normal</tickerType>
<statBases>
<MarketValue>2000</MarketValue>
<MaxHitPoints>50</MaxHitPoints>
<Flammability>1</Flammability>
</statBases>
<building>
<deconstructible>false</deconstructible>
<repairable>false</repairable>
</building>
<descriptionHyperlinks>
<ThingDef>ARA_Gene_Essence</ThingDef>
</descriptionHyperlinks>
<comps>
<!-- The new, GrowthVat-style fuel component -->
<li Class="ArachnaeSwarm.CompProperties_RefuelableNutrition">
<fuelCapacity>100</fuelCapacity>
<fuelLabel>精华素</fuelLabel>
<fuelFilter>
<thingDefs>
<li>ARA_Gene_Essence</li>
</thingDefs>
</fuelFilter>
<fuelConsumptionRate>0</fuelConsumptionRate> <!-- IMPORTANT: Disable base class consumption -->
<showAllowAutoRefuelToggle>false</showAllowAutoRefuelToggle>
<initialFuelPercent>0.02</initialFuelPercent>
<autoRefuelPercent>1</autoRefuelPercent>
<initialConfigurableTargetFuelLevel>0</initialConfigurableTargetFuelLevel>
</li>
<li Class="CompProperties_SpawnEffecterOnDestroy">
<effect>CocoonDestroyed</effect>
</li>
<!-- 研究生产组件 -->
<li Class="ArachnaeSwarm.CompProperties_ResearchProducer">
<whitelist>
<li>ARA_ArachnaeQueen</li>
</whitelist>
<destroyOnSpawn>true</destroyOnSpawn>
<damagePerTickWhenUnfueled>0.2</damagePerTickWhenUnfueled>
<minNutritionToStart>1.0</minNutritionToStart>
<nutritionPerResearchPoint>0.06</nutritionPerResearchPoint>
<productionTicksPerResearchPoint>30</productionTicksPerResearchPoint>
</li>
<li Class="ArachnaeSwarm.CompProperties_TemperatureRuinableDamage">
<minSafeTemperature>-30</minSafeTemperature>
<maxSafeTemperature>55</maxSafeTemperature>
<progressPerDegreePerTick>0.00005</progressPerDegreePerTick>
<damagePerTick>0.005</damagePerTick>
<recoveryRate>0.001</recoveryRate>
</li>
</comps>
</ThingDef>
</Defs>

View File

@@ -46,6 +46,59 @@
</li>
</subNodes>
</li>
<!-- Tame animal: wander near colony if possible -->
<li Class="ThinkNode_ConditionalOfPlayerFaction">
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Idle</tagToGive>
<subNodes>
<!-- Wander near your current position if in hostile map -->
<li Class="ThinkNode_ConditionalAnyEnemyInHostileMap">
<subNodes>
<li Class="JobGiver_WanderAnywhere">
<maxDanger>None</maxDanger>
<ticksBetweenWandersRange>120~240</ticksBetweenWandersRange>
</li>
</subNodes>
</li>
<li Class="ThinkNode_ConditionalRoamer">
<subNodes>
<li Class="JobGiver_WanderInRoofedCellsInPen">
<maxDanger>None</maxDanger>
<ticksBetweenWandersRange>120~240</ticksBetweenWandersRange>
<expiryInterval>500</expiryInterval>
</li>
<!-- tame roamers should not wander too far, and if unenclosed wander near a suitable pen marker 10% of the time -->
<li Class="ThinkNode_ConditionalRandom">
<chance>0.1</chance>
<subNodes>
<li Class="JobGiver_WanderInPen">
<maxDanger>None</maxDanger>
<ticksBetweenWandersRange>120~240</ticksBetweenWandersRange>
<expiryInterval>500</expiryInterval>
</li>
</subNodes>
</li>
<li Class="JobGiver_WanderAnywhere">
<maxDanger>None</maxDanger>
<ticksBetweenWandersRange>120~240</ticksBetweenWandersRange>
</li>
</subNodes>
</li>
<!-- Wander near colony -->
<li Class="JobGiver_WanderColony">
<maxDanger>None</maxDanger>
<ticksBetweenWandersRange>120~240</ticksBetweenWandersRange>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- Wander -->
<li Class="ThinkNode_Tagger">
@@ -642,25 +695,6 @@
<insertTag>Humanlike_PostDuty</insertTag>
</li>
<!-- JobGiver_MaintainBuildings start -->
<li Class="ThinkNode_ChancePerHour_Constant">
<mtbHours>2.5</mtbHours>
<subNodes>
<li Class="ArachnaeSwarm.JobGiver_MaintainBuildings">
<maintainableThingDefs>
<li>ARA_InteractiveEggSac</li> <!-- 默认维护Hive -->
</maintainableThingDefs>
</li>
</subNodes>
</li>
<li Class="ArachnaeSwarm.JobGiver_MaintainBuildings">
<maintainableThingDefs>
<li>ARA_InteractiveEggSac</li> <!-- 默认维护Hive -->
</maintainableThingDefs>
<onlyIfDamagingState>true</onlyIfDamagingState>
</li>
<!-- JobGiver_MaintainBuildings end -->
<!-- Prisoner -->
<li Class="ThinkNode_ConditionalPrisoner">
<leaveJoinableLordIfIssuesJob>true</leaveJoinableLordIfIssuesJob>

View File

@@ -1,162 +1,108 @@
<?xml version="1.0" encoding="utf-8"?>
<LanguageData>
<!-- Building_Ootheca.cs -->
<Incubating>正在孵化</Incubating>
<Progress>进度</Progress>
<Speed>速度</Speed>
<Quality>质量</Quality>
<Target>目标</Target>
<SpeedMultiplier>速度乘数</SpeedMultiplier>
<QualityMultiplier>质量乘数</QualityMultiplier>
<LarvaIsOperating>幼虫种进入中</LarvaIsOperating>
<SRemaining>剩余秒数</SRemaining>
<LarvaIsOnTheWay>幼虫种正在路上</LarvaIsOnTheWay>
<TimeRemaining>剩余时间</TimeRemaining>
<Days></Days>
<Hours>小时</Hours>
<CallLarva>指派幼虫种</CallLarva>
<CancelIncubation>取消孵化</CancelIncubation>
<CancelIncubationDesc>取消当前的孵化进度,幼虫种将死在卵囊中,卵囊则会重新张开以接纳其他幼虫种</CancelIncubationDesc>
<Incubate>孵化</Incubate>
<None></None>
<SelectWhatToIncubate>选择要孵化的目标,点击更改目标。</SelectWhatToIncubate>
<NoTargetSelected>未选择目标</NoTargetSelected>
<BaseIncubationTime>基础孵化时间</BaseIncubationTime>
<!-- 速度因子描述 -->
<ARA_OothecaIncubator.SpeedFactors>速度因子</ARA_OothecaIncubator.SpeedFactors>
<ARA_OothecaIncubator.InIncubatorRoom>✓ 在孵化间中</ARA_OothecaIncubator.InIncubatorRoom>
<ARA_OothecaIncubator.NotInIncubatorRoom>✗ 不在孵化间中</ARA_OothecaIncubator.NotInIncubatorRoom>
<ARA_OothecaIncubator.NutrientSolutions>营养液:{0}个(+{1}%</ARA_OothecaIncubator.NutrientSolutions>
<ARA_OothecaIncubator.NoNutrientSolutionsNearby>附近没有营养液</ARA_OothecaIncubator.NoNutrientSolutionsNearby>
<ARA_OothecaIncubator.NutrientDetectionRadius>营养液检测半径:{0}格</ARA_OothecaIncubator.NutrientDetectionRadius>
<ARA_OothecaIncubator.TotalSpeedMultiplier>总速度倍率:{0}</ARA_OothecaIncubator.TotalSpeedMultiplier>
<!-- 质量因子描述 -->
<ARA_OothecaIncubator.QualityFactors>质量因子</ARA_OothecaIncubator.QualityFactors>
<ARA_OothecaIncubator.BuildingHealth>建筑血量:{0}</ARA_OothecaIncubator.BuildingHealth>
<ARA_OothecaIncubator.RoomFactorNormal>房间因子:正常</ARA_OothecaIncubator.RoomFactorNormal>
<ARA_OothecaIncubator.RoomFactorModified>房间因子:{0}</ARA_OothecaIncubator.RoomFactorModified>
<ARA_OothecaIncubator.NearbyOothecas>附近其他卵:{0}个(-{1}%</ARA_OothecaIncubator.NearbyOothecas>
<ARA_OothecaIncubator.NoNearbyOothecas>附近没有其他卵</ARA_OothecaIncubator.NoNearbyOothecas>
<ARA_OothecaIncubator.OothecaDetectionRadius>其他卵检测半径:{0}格</ARA_OothecaIncubator.OothecaDetectionRadius>
<ARA_OothecaIncubator.TotalQualityMultiplier>总质量倍率:{0}</ARA_OothecaIncubator.TotalQualityMultiplier>
<!-- 幼虫相关 -->
<ARA_OothecaIncubator.CallLarvaTitle>呼叫幼虫</ARA_OothecaIncubator.CallLarvaTitle>
<ARA_OothecaIncubator.LarvaWillCome>幼虫将前来激活卵囊并孵化:</ARA_OothecaIncubator.LarvaWillCome>
<ARA_OothecaIncubator.LarvaSearchRadius>幼虫搜索半径:{0}格</ARA_OothecaIncubator.LarvaSearchRadius>
<ARA_OothecaIncubator.AlreadyIncubating>已经在孵化中</ARA_OothecaIncubator.AlreadyIncubating>
<ARA_OothecaIncubator.CancelFirst>请先取消当前孵化</ARA_OothecaIncubator.CancelFirst>
<ARA_OothecaIncubator.LarvaAlreadyOnWay>幼虫已在路上</ARA_OothecaIncubator.LarvaAlreadyOnWay>
<ARA_OothecaIncubator.NoLarvaeFound>未找到幼虫</ARA_OothecaIncubator.NoLarvaeFound>
<ARA_OothecaIncubator.LarvaMustBeRace>幼虫必须是ArachnaeBase_Race_Larva种族</ARA_OothecaIncubator.LarvaMustBeRace>
<ARA_OothecaIncubator.LarvaCalled>已呼叫幼虫</ARA_OothecaIncubator.LarvaCalled>
<ARA_OothecaIncubator.ArriveShortly>将很快到达</ARA_OothecaIncubator.ArriveShortly>
<ARA_OothecaIncubator.LarvaArrived>幼虫已到达</ARA_OothecaIncubator.LarvaArrived>
<ARA_OothecaIncubator.ActivatingOotheca>正在激活卵囊</ARA_OothecaIncubator.ActivatingOotheca>
<ARA_OothecaIncubator.IncubationStarted>孵化开始:</ARA_OothecaIncubator.IncubationStarted>
<ARA_OothecaIncubator.ProcessWillComplete>过程将在</ARA_OothecaIncubator.ProcessWillComplete>
<ARA_OothecaIncubator.DaysBaseTime>天内完成(基础时间)</ARA_OothecaIncubator.DaysBaseTime>
<!-- 孵化状态 -->
<ARA_OothecaIncubator.IncubationCancelled>孵化已取消</ARA_OothecaIncubator.IncubationCancelled>
<ARA_OothecaIncubator.ContentsLost>内容物已丢失</ARA_OothecaIncubator.ContentsLost>
<ARA_OothecaIncubator.IncubationComplete>孵化完成:</ARA_OothecaIncubator.IncubationComplete>
<ARA_OothecaIncubator.HasEmergedWith>已生成,质量:</ARA_OothecaIncubator.HasEmergedWith>
<ARA_OothecaIncubator.QualityExcellent>极佳</ARA_OothecaIncubator.QualityExcellent>
<ARA_OothecaIncubator.QualityGood>良好</ARA_OothecaIncubator.QualityGood>
<ARA_OothecaIncubator.QualityAverage>普通</ARA_OothecaIncubator.QualityAverage>
<ARA_OothecaIncubator.QualityPoor></ARA_OothecaIncubator.QualityPoor>
<ARA_OothecaIncubator.QualityVeryPoor>极差</ARA_OothecaIncubator.QualityVeryPoor>
<!-- 基础信息 -->
<ARA_OothecaIncubator.Incubating>正在孵化</ARA_OothecaIncubator.Incubating>
<ARA_OothecaIncubator.Progress>进度</ARA_OothecaIncubator.Progress>
<ARA_OothecaIncubator.TimeRemaining>剩余时间</ARA_OothecaIncubator.TimeRemaining>
<ARA_OothecaIncubator.Days></ARA_OothecaIncubator.Days>
<ARA_OothecaIncubator.Hours>小时</ARA_OothecaIncubator.Hours>
<ARA_OothecaIncubator.Speed>速度</ARA_OothecaIncubator.Speed>
<ARA_OothecaIncubator.Quality>质量</ARA_OothecaIncubator.Quality>
<ARA_OothecaIncubator.LarvaOperating>幼虫操作中</ARA_OothecaIncubator.LarvaOperating>
<ARA_OothecaIncubator.SRemaining>秒剩余</ARA_OothecaIncubator.SRemaining>
<ARA_OothecaIncubator.LarvaOnWay>幼虫在路上</ARA_OothecaIncubator.LarvaOnWay>
<ARA_OothecaIncubator.Target>目标</ARA_OothecaIncubator.Target>
<ARA_OothecaIncubator.SpeedMultiplier>速度倍率</ARA_OothecaIncubator.SpeedMultiplier>
<ARA_OothecaIncubator.QualityMultiplier>质量倍率</ARA_OothecaIncubator.QualityMultiplier>
<!-- 按钮和菜单 -->
<ARA_OothecaIncubator.CallLarva>呼叫幼虫</ARA_OothecaIncubator.CallLarva>
<ARA_OothecaIncubator.CancelIncubation>取消孵化</ARA_OothecaIncubator.CancelIncubation>
<ARA_OothecaIncubator.CancelIncubationDesc>取消当前孵化,已消耗的资源将丢失</ARA_OothecaIncubator.CancelIncubationDesc>
<ARA_OothecaIncubator.IncubateLabel>孵化:{0}</ARA_OothecaIncubator.IncubateLabel>
<ARA_OothecaIncubator.ButtonLabel>孵化:{0}</ARA_OothecaIncubator.ButtonLabel>
<ARA_OothecaIncubator.IncubationTime>孵化时间:{0}天</ARA_OothecaIncubator.IncubationTime>
<ARA_OothecaIncubator.ButtonDesc>点击选择要孵化的物种</ARA_OothecaIncubator.ButtonDesc>
<ARA_OothecaIncubator.ResearchRequired>需要研究:{0}</ARA_OothecaIncubator.ResearchRequired>
<ARA_OothecaIncubator.MenuTitle>选择孵化目标</ARA_OothecaIncubator.MenuTitle>
<ARA_OothecaIncubator.TargetSwitched>已切换目标:{0}</ARA_OothecaIncubator.TargetSwitched>
<NoDescriptionAvailable>无可用描述</NoDescriptionAvailable>
<IncubationTime>孵化时间</IncubationTime>
<DaysRequired></DaysRequired>
<Research>研究</Research>
<Completed>已完成</Completed>
<Required>需要</Required>
<ClickToSelectDifferentTarget>点击选择不同的孵化目标。</ClickToSelectDifferentTarget>
<AlreadyIncubating>已经在孵化中</AlreadyIncubating>
<CancelCurrentIncubationFirst>请先取消当前孵化</CancelCurrentIncubationFirst>
<LarvaAlreadyOnTheWay>一只幼虫种已经在前往这个卵囊的路上</LarvaAlreadyOnTheWay>
<NoAvailableLarvaeFound>没有找到可用的幼虫种</NoAvailableLarvaeFound>
<LarvaMustBeOfRace>必须是阿拉克涅幼虫种,并且属于你的派系</LarvaMustBeOfRace>
<LarvaCalled>已召唤幼虫种</LarvaCalled>
<ItWillArriveShortly>它将很快到达并激活卵囊</ItWillArriveShortly>
<LarvaHasArrived>幼虫种已到达</LarvaHasArrived>
<AndIsActivatingTheOotheca>正在激活卵囊...</AndIsActivatingTheOotheca>
<IncubationStartedFor>已开始孵化</IncubationStartedFor>
<ProcessWillCompleteIn>过程将在</ProcessWillCompleteIn>
<DaysBaseTime>天后完成(基础时间)</DaysBaseTime>
<IncubationCancelled>孵化已取消</IncubationCancelled>
<ContentsLost>内容已丢失</ContentsLost>
<IncubationComplete>孵化完成</IncubationComplete>
<HasEmergedWith>已诞生,质量为</HasEmergedWith>
<QualityExcellent>优秀</QualityExcellent>
<QualityGood>良好</QualityGood>
<QualityAverage>一般</QualityAverage>
<QualityPoor></QualityPoor>
<QualityVeryPoor>极差</QualityVeryPoor>
<IncubationSpeedFactors>孵化速度因子:</IncubationSpeedFactors>
<InIncubatorRoom>✓ 在孵化间中 (100%)</InIncubatorRoom>
<NotInIncubatorRoom>✗ 不在孵化间中 (80%速度)</NotInIncubatorRoom>
<NutrientSolutions>✓ 营养液</NutrientSolutions>
<NoNutrientSolutionsNearby>✗ 附近没有营养液</NoNutrientSolutionsNearby>
<TotalSpeedMultiplier>总速度乘数:{0}</TotalSpeedMultiplier>
<IncubationQualityFactors>孵化质量因子:</IncubationQualityFactors>
<BuildingHealth>✓ 建筑血量:</BuildingHealth>
<RoomFactorNormal>✓ 房间因子100%</RoomFactorNormal>
<RoomFactorModified>房间因子:</RoomFactorModified>
<NearbyOothecas>✗ 附近卵囊:</NearbyOothecas>
<NoNearbyOothecas>✓ 附近没有卵囊</NoNearbyOothecas>
<TotalQualityMultiplier>总质量乘数:{0}</TotalQualityMultiplier>
<CallALarvaToActivate>召唤一只幼虫种来进入这个卵囊</CallALarvaToActivate>
<LarvaWillComeToTheOotheca>幼虫种将来到卵囊,进入它,然后开始孵化:</LarvaWillComeToTheOotheca>
<CurrentSpeedMultiplier>当前速度乘数:</CurrentSpeedMultiplier>
<CurrentQualityMultiplier>当前质量乘数:</CurrentQualityMultiplier>
<CancelTheCurrentIncubationProcess>取消当前的孵化过程,在其中的幼虫种将会死亡</CancelTheCurrentIncubationProcess>
<!-- CompProperties_IncubatorData.cs -->
<IncubatorButtonLabel>孵化:{0}</IncubatorButtonLabel>
<IncubatorButtonDesc>点击更改目标</IncubatorButtonDesc>
<IncubatorMenuTitle>选择孵化目标</IncubatorMenuTitle>
<IncubationTarget>孵化目标:</IncubationTarget>
<Requires>需要:</Requires>
<NoDescriptionAvailable>无描述可用</NoDescriptionAvailable>
<IncubationTime>孵化时间</IncubationTime>
<IncubatorButtonTime>孵化时间:{0}天</IncubatorButtonTime>
<!-- ITab_Ootheca_Incubation.cs -->
<IncubationTab>孵化状态</IncubationTab>
<IncubationProgress>孵化进度</IncubationProgress>
<NotAnOotheca>这不是一个卵囊</NotAnOotheca>
<ReadyToIncubate>准备孵化:</ReadyToIncubate>
<NoIncubationTargetSelected>未选择孵化目标</NoIncubationTargetSelected>
<LarvaIsActivatingOotheca>幼虫种正在激活卵囊...</LarvaIsActivatingOotheca>
<SecondsRemaining>剩余秒数</SecondsRemaining>
<QualityBelowTargetAffectsFinalOutcome>质量:低于目标(影响最终结果)</QualityBelowTargetAffectsFinalOutcome>
<QualityProgress>质量进度</QualityProgress>
<IncubationProgressLabel>孵化进度</IncubationProgressLabel>
<!-- JobDriver_OperateIncubator.cs -->
<ActivatingOotheca>正在激活卵囊...</ActivatingOotheca>
<!-- Quality Status Messages -->
<QualityBelowTarget>质量低于目标</QualityBelowTarget>
<!-- Research Related -->
<ResearchRequired>需要研究</ResearchRequired>
<!-- 孵化系统翻译 -->
<ARA_OothecaIncubator.SpeedFactors>速度因子</ARA_OothecaIncubator.SpeedFactors>
<ARA_OothecaIncubator.InIncubatorRoom>✓ 位于孵化间内</ARA_OothecaIncubator.InIncubatorRoom>
<ARA_OothecaIncubator.NotInIncubatorRoom>✗ 不在孵化间内</ARA_OothecaIncubator.NotInIncubatorRoom>
<ARA_OothecaIncubator.NutrientSolutions>营养液: {0} (+{1}%)</ARA_OothecaIncubator.NutrientSolutions>
<ARA_OothecaIncubator.NoNutrientSolutionsNearby>无附近营养液</ARA_OothecaIncubator.NoNutrientSolutionsNearby>
<ARA_OothecaIncubator.NutrientDetectionRadius>营养液检测半径: {0}格</ARA_OothecaIncubator.NutrientDetectionRadius>
<ARA_OothecaIncubator.TotalSpeedMultiplier>总速度乘数: {0}</ARA_OothecaIncubator.TotalSpeedMultiplier>
<ARA_OothecaIncubator.QualityFactors>质量因子</ARA_OothecaIncubator.QualityFactors>
<ARA_OothecaIncubator.BuildingHealth>建筑健康度: {0}</ARA_OothecaIncubator.BuildingHealth>
<ARA_OothecaIncubator.RoomFactorNormal>房间因子: 正常</ARA_OothecaIncubator.RoomFactorNormal>
<ARA_OothecaIncubator.RoomFactorModified>房间因子: </ARA_OothecaIncubator.RoomFactorModified>
<ARA_OothecaIncubator.NearbyOothecas>附近卵: {0} (-{1}%)</ARA_OothecaIncubator.NearbyOothecas>
<ARA_OothecaIncubator.NoNearbyOothecas>无附近卵</ARA_OothecaIncubator.NoNearbyOothecas>
<ARA_OothecaIncubator.OothecaDetectionRadius>卵检测半径: {0}格</ARA_OothecaIncubator.OothecaDetectionRadius>
<ARA_OothecaIncubator.TotalQualityMultiplier>总质量乘数: {0}</ARA_OothecaIncubator.TotalQualityMultiplier>
<ARA_OothecaIncubator.CallLarvaTitle>呼叫幼虫</ARA_OothecaIncubator.CallLarvaTitle>
<ARA_OothecaIncubator.LarvaWillCome>幼虫将前往卵荚进行孵化</ARA_OothecaIncubator.LarvaWillCome>
<ARA_OothecaIncubator.LarvaSearchRadius>幼虫搜索半径: {0}格</ARA_OothecaIncubator.LarvaSearchRadius>
<ARA_OothecaIncubator.AlreadyIncubating>已经在孵化中</ARA_OothecaIncubator.AlreadyIncubating>
<ARA_OothecaIncubator.CancelFirst>请先取消当前孵化</ARA_OothecaIncubator.CancelFirst>
<ARA_OothecaIncubator.LarvaAlreadyOnWay>幼虫已在途中</ARA_OothecaIncubator.LarvaAlreadyOnWay>
<ARA_OothecaIncubator.NoLarvaeFound>未找到可用幼虫</ARA_OothecaIncubator.NoLarvaeFound>
<ARA_OothecaIncubator.LarvaMustBeRace>必须是幼虫种</ARA_OothecaIncubator.LarvaMustBeRace>
<ARA_OothecaIncubator.LarvaCalled>幼虫已呼叫</ARA_OothecaIncubator.LarvaCalled>
<ARA_OothecaIncubator.ArriveShortly>即将到达</ARA_OothecaIncubator.ArriveShortly>
<ARA_OothecaIncubator.LarvaArrived>幼虫已到达</ARA_OothecaIncubator.LarvaArrived>
<ARA_OothecaIncubator.ActivatingOotheca>正在激活卵荚</ARA_OothecaIncubator.ActivatingOotheca>
<ARA_OothecaIncubator.IncubationStarted>开始孵化</ARA_OothecaIncubator.IncubationStarted>
<ARA_OothecaIncubator.ProcessWillComplete>过程将在</ARA_OothecaIncubator.ProcessWillComplete>
<ARA_OothecaIncubator.DaysBaseTime>天内完成(基础时间)</ARA_OothecaIncubator.DaysBaseTime>
<ARA_OothecaIncubator.IncubationCancelled>孵化已取消</ARA_OothecaIncubator.IncubationCancelled>
<ARA_OothecaIncubator.ContentsLost>内容物已丢失</ARA_OothecaIncubator.ContentsLost>
<ARA_OothecaIncubator.IncubationComplete>孵化完成</ARA_OothecaIncubator.IncubationComplete>
<ARA_OothecaIncubator.HasEmergedWith>已出现,质量为</ARA_OothecaIncubator.HasEmergedWith>
<ARA_OothecaIncubator.QualityExcellent>优秀</ARA_OothecaIncubator.QualityExcellent>
<ARA_OothecaIncubator.QualityGood>良好</ARA_OothecaIncubator.QualityGood>
<ARA_OothecaIncubator.QualityAverage>一般</ARA_OothecaIncubator.QualityAverage>
<ARA_OothecaIncubator.QualityPoor>较差</ARA_OothecaIncubator.QualityPoor>
<ARA_OothecaIncubator.QualityVeryPoor>很差</ARA_OothecaIncubator.QualityVeryPoor>
<ARA_OothecaIncubator.Quality>质量</ARA_OothecaIncubator.Quality>
<!-- Hediff奖励相关 -->
<HediffRewards>额外状态效果</HediffRewards>
<HediffRewardsTitle>孵化质量奖励 - 状态效果</HediffRewardsTitle>
<NoHediffRewards>没有可用的状态效果奖励。</NoHediffRewards>
<HediffRewards>孵化质量奖励</HediffRewards>
<QualityThresholds>质量阈值奖励</QualityThresholds>
<AllHediffsReward>获得所有状态效果</AllHediffsReward>
<HediffCountReward>获得{0}个随机状态效果</HediffCountReward>
<AllHediffs>全部效果</AllHediffs>
<Hediffs>个效果</Hediffs>
<HediffRewardsAvailable>可用状态效果</HediffRewardsAvailable>
<QualityForRewards>质量奖励:</QualityForRewards>
<!-- 奖励消息 -->
<IncubatorButtonLabel>孵化···</IncubatorButtonLabel>
<IncubatorButtonDesc>选择孵化的阿拉克涅督虫···</IncubatorButtonDesc>
<IncubatorMenuTitle>孵化菜单</IncubatorMenuTitle>
<IncubationTarget>孵化目标:</IncubationTarget>
<Requires>需要</Requires>
<IncubationTab>孵化进度</IncubationTab>
<NotAnOotheca>这不是一个卵囊</NotAnOotheca>
<IncubationProgress>孵化进度</IncubationProgress>
<Speed>速度</Speed>
<Quality>质量</Quality>
<IncubationProgressLabel>孵化进度</IncubationProgressLabel>
<QualityProgress>质量进度</QualityProgress>
<Target>目标</Target>
<Days></Days>
<Hours>小时</Hours>
<LarvaIsActivatingOotheca>幼虫正在激活卵囊</LarvaIsActivatingOotheca>
<SecondsRemaining>秒剩余</SecondsRemaining>
<LarvaIsOnTheWay>幼虫正在路上</LarvaIsOnTheWay>
<ReadyToIncubate>准备孵化</ReadyToIncubate>
<NoIncubationTargetSelected>未选择孵化目标</NoIncubationTargetSelected>
<ActivatingOotheca>正在激活卵囊</ActivatingOotheca>
<ARA_QualityReward_1Hediff>{0}因高质量的孵化获得了1个额外状态效果</ARA_QualityReward_1Hediff>
<ARA_QualityReward_2Hediff>{0}因高质量的孵化获得了2个额外状态效果</ARA_QualityReward_2Hediff>
<ARA_QualityReward_3Hediff>{0}因高质量的孵化获得了3个额外状态效果</ARA_QualityReward_3Hediff>
@@ -164,7 +110,7 @@
<ARA_QualityReward_AllHediff>{0}因卓越的孵化质量获得了所有额外状态效果!</ARA_QualityReward_AllHediff>
<ARA_QualityReward_Default>{0}获得了{1}个额外状态效果!</ARA_QualityReward_Default>
<!-- 基础信息 -->
<!-- 基础信息 -->
<ARA_EquipmentIncubator.Incubating>正在孵化</ARA_EquipmentIncubator.Incubating>
<ARA_EquipmentIncubator.Progress>进度</ARA_EquipmentIncubator.Progress>
<ARA_EquipmentIncubator.TimeRemaining>剩余时间</ARA_EquipmentIncubator.TimeRemaining>

View File

@@ -11,28 +11,12 @@
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_ootheca\\compproperties_incubatordata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\buildings\\building_ootheca\\building_ootheca.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_ootheca\\building_ootheca.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\buildings\\building_ootheca\\itab_ootheca_incubation.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_ootheca\\itab_ootheca_incubation.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\buildings\\building_ootheca\\oothecaincubatorextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_ootheca\\oothecaincubatorextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\buildings\\building_equipmentootheca\\itab_equipmentootheca_incubation.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_equipmentootheca\\itab_equipmentootheca_incubation.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|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\\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_equipmentootheca\\compproperties_equipmentincubatordata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_equipmentootheca\\compproperties_equipmentincubatordata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ara_hediffdefof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:ara_hediffdefof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
@@ -42,25 +26,8 @@
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 1,
"SelectedChildIndex": 4,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
},
{
"$type": "Document",
"DocumentIndex": 0,
"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": "AgIAAEEAAAAAAAAAAAAkwBYAAAAzAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-16T04:00:20.165Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
@@ -69,82 +36,53 @@
"RelativeDocumentMoniker": "Buildings\\Building_Ootheca\\CompProperties_IncubatorData.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\CompProperties_IncubatorData.cs",
"RelativeToolTip": "Buildings\\Building_Ootheca\\CompProperties_IncubatorData.cs",
"ViewState": "AgIAAAIBAAAAAAAAAAAawB8BAAAAAAAAAAAAAA==",
"ViewState": "AgIAAAAAAAAAAAAAAAAAADEAAAAlAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-16T02:36:56.126Z",
"WhenOpened": "2025-12-16T08:17:40.867Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "ITab_Ootheca_Incubation.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\ITab_Ootheca_Incubation.cs",
"RelativeDocumentMoniker": "Buildings\\Building_Ootheca\\ITab_Ootheca_Incubation.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\ITab_Ootheca_Incubation.cs",
"RelativeToolTip": "Buildings\\Building_Ootheca\\ITab_Ootheca_Incubation.cs",
"ViewState": "AgIAAJUAAAAAAAAAAAAewMkAAAANAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-16T08:14:08.752Z",
"EditorCaption": ""
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "OothecaIncubatorExtension.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\OothecaIncubatorExtension.cs",
"RelativeDocumentMoniker": "Buildings\\Building_Ootheca\\OothecaIncubatorExtension.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\OothecaIncubatorExtension.cs",
"RelativeToolTip": "Buildings\\Building_Ootheca\\OothecaIncubatorExtension.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAArAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-16T00:38:04.247Z"
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "ITab_EquipmentOotheca_Incubation.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\ITab_EquipmentOotheca_Incubation.cs",
"RelativeDocumentMoniker": "Buildings\\Building_EquipmentOotheca\\ITab_EquipmentOotheca_Incubation.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\ITab_EquipmentOotheca_Incubation.cs",
"RelativeToolTip": "Buildings\\Building_EquipmentOotheca\\ITab_EquipmentOotheca_Incubation.cs",
"ViewState": "AgIAAIAAAAAAAAAAAADgv5AAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-16T00:29:36.407Z"
},
{
"$type": "Document",
"DocumentIndex": 5,
"Title": "Building_EquipmentOotheca.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs",
"RelativeDocumentMoniker": "Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs",
"RelativeToolTip": "Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs",
"ViewState": "AgIAAEgCAAAAAAAAAAAewF8CAABDAAAAAAAAAA==",
"ViewState": "AgIAALgCAAAAAAAAAAAAAMQCAAAjAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-15T18:22:14.171Z"
"WhenOpened": "2025-12-16T08:13:46.678Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"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": "AgIAACkBAAAAAAAAAAAhwC0BAAApAAAAAAAAAA==",
"DocumentIndex": 0,
"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": "AgIAAPsAAAAAAAAAAAAewBMBAAAfAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-15T18:22:12.217Z"
},
{
"$type": "Document",
"DocumentIndex": 6,
"Title": "CompProperties_EquipmentIncubatorData.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\CompProperties_EquipmentIncubatorData.cs",
"RelativeDocumentMoniker": "Buildings\\Building_EquipmentOotheca\\CompProperties_EquipmentIncubatorData.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\CompProperties_EquipmentIncubatorData.cs",
"RelativeToolTip": "Buildings\\Building_EquipmentOotheca\\CompProperties_EquipmentIncubatorData.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAACYAAAAaAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-15T17:55:40.041Z"
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "ARA_HediffDefOf.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARA_HediffDefOf.cs",
"RelativeDocumentMoniker": "ARA_HediffDefOf.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARA_HediffDefOf.cs",
"RelativeToolTip": "ARA_HediffDefOf.cs",
"ViewState": "AgIAAAAAAAAAAAAAAADwvxgAAAAdAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-15T17:32:18.493Z"
"WhenOpened": "2025-12-16T04:00:20.165Z",
"EditorCaption": ""
}
]
}

View File

@@ -1,4 +1,5 @@
using RimWorld;
// File: Building_RefuelingVat.cs
using RimWorld;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -17,6 +18,11 @@ namespace ArachnaeSwarm
private CompAutoEjector cachedAutoEjectorComp;
private Graphic cachedTopGraphic;
// === 新增字段:销毁系统 ===
private bool selfDestructInitiated = false;
private int pawnMissingTickCount = 0;
private const int MissingTicksBeforeDestruction = 60; // Pawn失踪后60ticks1秒销毁建筑
// 新增字段跟踪被建筑杀死的pawn
private HashSet<Pawn> pawnsKilledByVat = new HashSet<Pawn>();
@@ -103,6 +109,86 @@ namespace ArachnaeSwarm
private const int AcidDamageInterval = 6000;
private Dictionary<Pawn, int> pawnTickCounters = new Dictionary<Pawn, int>();
// === 新增方法检查Pawn是否在容器内 ===
private bool IsPawnInContainer(Pawn pawn)
{
if (pawn == null || pawn.Destroyed) return false;
return innerContainer.Contains(pawn);
}
// === 新增方法:启动自毁系统 ===
private void InitiateSelfDestruct()
{
if (selfDestructInitiated) return;
selfDestructInitiated = true;
pawnMissingTickCount = 0;
Log.Message($"RefuelingVat at {Position}: Pawn missing from container. Self-destruct initiated. Will destroy in {MissingTicksBeforeDestruction} ticks.");
// 发送警告消息
Messages.Message("RefuelingVat_ContainmentBreach".Translate(), this, MessageTypeDefOf.NegativeEvent);
}
// === 新增方法:执行建筑销毁 ===
private void ExecuteSelfDestruct()
{
Log.Message($"RefuelingVat at {Position}: Self-destruct sequence complete. Destroying building.");
// 显示爆炸效果
if (!Destroyed)
{
// 销毁建筑
Destroy(DestroyMode.Vanish);
}
}
// === 修改检查Pawn状态 ===
private void CheckPawnContainment()
{
if (!base.Working || selectedPawn == null)
{
// 如果不在工作状态,重置自毁系统
selfDestructInitiated = false;
pawnMissingTickCount = 0;
return;
}
// 检查Pawn是否还在容器内
if (!IsPawnInContainer(selectedPawn))
{
// Pawn不在容器内启动或继续自毁
if (!selfDestructInitiated)
{
InitiateSelfDestruct();
}
else
{
pawnMissingTickCount++;
// 检查是否达到销毁时间
if (pawnMissingTickCount >= MissingTicksBeforeDestruction)
{
ExecuteSelfDestruct();
}
else if (pawnMissingTickCount % 30 == 0) // 每0.5秒报告一次
{
Log.Message($"RefuelingVat at {Position}: Pawn still missing. Self-destruct in {MissingTicksBeforeDestruction - pawnMissingTickCount} ticks.");
}
}
}
else
{
// Pawn在容器内重置自毁系统
if (selfDestructInitiated)
{
Log.Message($"RefuelingVat at {Position}: Pawn returned to container. Self-destruct cancelled.");
selfDestructInitiated = false;
pawnMissingTickCount = 0;
Messages.Message("RefuelingVat_ContainmentRestored".Translate(), this, MessageTypeDefOf.PositiveEvent);
}
}
}
// 安全字典操作方法
private bool SafeTryGetTickCount(Pawn pawn, out int tickCount)
{
@@ -163,7 +249,7 @@ namespace ArachnaeSwarm
{
if (selectedPawn != null && innerContainer.Contains(selectedPawn))
{
ArachnaeLog.Debug($"RefuelingVat despawned with pawn inside, forcing ejection.");
Log.Message($"RefuelingVat despawned with pawn inside, forcing ejection.");
Finish(); // 使用修改后的Finish方法
}
}
@@ -186,10 +272,10 @@ namespace ArachnaeSwarm
DamageInfo acidDamage = new DamageInfo(
acidDamageDef,
1.5f, // 每次1.5点伤害
1000f, // 每次1.5点伤害
2f, // 护甲穿透
-1f, // 随机角度
instigator: this, // 将建筑设为伤害来源
null, // 将建筑设为伤害来源
hitPart: targetPart
);
@@ -207,11 +293,11 @@ namespace ArachnaeSwarm
}
catch (Exception ex)
{
ArachnaeLog.Debug($"Error applying acid damage to {pawn}: {ex.Message}");
Log.Error($"Error applying acid damage to {pawn}: {ex.Message}");
}
}
// 新增方法处理pawn死亡
// === 修改处理pawn死亡 ===
private void HandlePawnDeath(Pawn pawn)
{
try
@@ -222,36 +308,22 @@ namespace ArachnaeSwarm
// 检查是否是被建筑杀死的
if (pawnsKilledByVat.Contains(pawn))
{
ArachnaeLog.Debug($"Pawn {pawn.Label} killed by RefuelingVat, destroying corpse.");
Log.Message($"Pawn {pawn.Label} killed by RefuelingVat.");
// 从容器中移除pawn
if (innerContainer.Contains(pawn))
{
innerContainer.Remove(pawn);
}
// 注意:现在不再需要从容器中移除Pawn或销毁尸体
// 因为建筑会被销毁Pawn会自然弹出
// 销毁pawn的尸体
if (!pawn.Destroyed)
{
pawn.Destroy();
}
// 从跟踪列表中移除
// 只是从跟踪列表中移除
SafeRemoveFromDictionaries(pawn);
// 立即调用完成逻辑
if (selectedPawn == pawn)
{
selectedPawn = null;
startTick = -1;
}
return; // 直接返回,不执行后续弹出逻辑
// 不需要重置selectedPawn因为建筑即将被销毁
// 自毁系统会处理Pawn不在容器中的情况
return;
}
}
catch (Exception ex)
{
ArachnaeLog.Debug($"Error handling pawn death for {pawn}: {ex}");
Log.Error($"Error handling pawn death for {pawn}: {ex}");
}
}
@@ -272,10 +344,17 @@ namespace ArachnaeSwarm
pawn.RaceProps.body.corePart;
}
// === 修改Tick方法 ===
protected override void Tick()
{
base.Tick();
// 检查Pawn是否还在容器内
CheckPawnContainment();
// 如果自毁已启动,跳过其他逻辑
if (selfDestructInitiated) return;
// 更严格的空值检查
if (selectedPawn == null || selectedPawn.Destroyed || !innerContainer.Contains(selectedPawn))
{
@@ -295,7 +374,9 @@ namespace ArachnaeSwarm
}
else
{
Finish(); // 其他原因的死亡正常弹出
// 其他原因的死亡 - 启动自毁系统
Log.Message($"Pawn {selectedPawn.Label} died unexpectedly. Starting self-destruct.");
InitiateSelfDestruct();
}
return;
}
@@ -379,6 +460,12 @@ namespace ArachnaeSwarm
// 确保pawn不在死亡跟踪列表中
pawnsKilledByVat.Remove(pawn);
// 重置自毁系统
selfDestructInitiated = false;
pawnMissingTickCount = 0;
Log.Message($"Pawn {pawn.Label} inserted into RefuelingVat at {Position}. Self-destruct monitoring active.");
}
if (deselected)
{
@@ -392,10 +479,11 @@ namespace ArachnaeSwarm
{
try
{
// 检查pawn是否还活着如果已经死亡且是被建筑杀死的跳过弹出
// 检查pawn是否还活着如果已经死亡且是被建筑杀死的启动自毁
if (selectedPawn.Dead && pawnsKilledByVat.Contains(selectedPawn))
{
HandlePawnDeath(selectedPawn);
Log.Message($"Pawn {selectedPawn.Label} killed by vat. Starting self-destruct.");
InitiateSelfDestruct();
return;
}
@@ -426,7 +514,7 @@ namespace ArachnaeSwarm
// 方法3强制移除仅对活着的pawn
if (!ejected && innerContainer.Contains(selectedPawn) && !selectedPawn.Dead)
{
ArachnaeLog.Debug($"Forcing removal of pawn {selectedPawn} from RefuelingVat");
Log.Message($"Forcing removal of pawn {selectedPawn} from RefuelingVat");
innerContainer.Remove(selectedPawn);
GenPlace.TryPlaceThing(selectedPawn, this.Position, base.Map, ThingPlaceMode.Near);
ejected = true;
@@ -435,16 +523,16 @@ namespace ArachnaeSwarm
if (ejected)
{
ArachnaeLog.Debug($"Successfully ejected {selectedPawn} using method: {ejectionMethod}");
Log.Message($"Successfully ejected {selectedPawn} using method: {ejectionMethod}");
}
else if (!selectedPawn.Dead) // 只有活着的pawn弹出失败才报错
{
ArachnaeLog.Debug($"Failed to eject {selectedPawn} from RefuelingVat");
Log.Message($"Failed to eject {selectedPawn} from RefuelingVat");
}
}
catch (Exception ex)
{
ArachnaeLog.Debug($"Error during Finish() for {selectedPawn}: {ex}");
Log.Error($"Error during Finish() for {selectedPawn}: {ex}");
}
finally
{
@@ -463,7 +551,7 @@ namespace ArachnaeSwarm
// 确保pawn不在容器中除非是被建筑杀死的
if (innerContainer.Contains(selectedPawn) && !(selectedPawn.Dead && pawnsKilledByVat.Contains(selectedPawn)))
{
ArachnaeLog.Debug($"Pawn {selectedPawn} still in container during OnStop, forcing removal.");
Log.Message($"Pawn {selectedPawn} still in container during OnStop, forcing removal.");
innerContainer.Remove(selectedPawn);
}
}
@@ -476,6 +564,7 @@ namespace ArachnaeSwarm
// 可以在这里添加音效
}
// === 修改添加取消Gizmo ===
public override IEnumerable<Gizmo> GetGizmos()
{
// 原有的基础Gizmos
@@ -483,84 +572,77 @@ namespace ArachnaeSwarm
{
yield return gizmo;
}
if (base.Working)
// 选择殖民者的操作
var command_Action = new Command_Action
{
}
else
defaultLabel = "InsertPerson".Translate() + "...",
defaultDesc = "InsertPersonRefuelingVatDesc".Translate(),
icon = Building_GrowthVat.InsertPawnIcon.Texture,
action = () =>
{
List<FloatMenuOption> list = new List<FloatMenuOption>();
foreach (Pawn p in base.Map.mapPawns.AllPawnsSpawned)
{
if (p != null && !p.Destroyed && CanAcceptPawn(p).Accepted)
{
list.Add(new FloatMenuOption(p.LabelCap, () => SelectPawn(p), p, Color.white));
}
}
if (!list.Any())
{
list.Add(new FloatMenuOption("NoViablePawns".Translate(), null));
}
Find.WindowStack.Add(new FloatMenu(list));
}
};
if (!base.AnyAcceptablePawns)
{
// 选择殖民者的操作
var command_Action = new Command_Action
{
defaultLabel = "InsertPerson".Translate() + "...",
defaultDesc = "InsertPersonRefuelingVatDesc".Translate(),
icon = Building_GrowthVat.InsertPawnIcon.Texture,
action = () =>
{
List<FloatMenuOption> list = new List<FloatMenuOption>();
foreach (Pawn p in base.Map.mapPawns.AllPawnsSpawned)
{
if (p != null && !p.Destroyed && CanAcceptPawn(p).Accepted)
{
list.Add(new FloatMenuOption(p.LabelCap, () => SelectPawn(p), p, Color.white));
}
}
if (!list.Any())
{
list.Add(new FloatMenuOption("NoViablePawns".Translate(), null));
}
Find.WindowStack.Add(new FloatMenu(list));
}
};
if (!base.AnyAcceptablePawns)
{
command_Action.Disable("NoViablePawns".Translate());
}
yield return command_Action;
// 指派搬运囚犯/奴隶的操作
var command_CarryPrisoner = new Command_Action
{
defaultLabel = "AssignCarryPrisoner".Translate() + "...",
defaultDesc = "AssignCarryPrisonerDesc".Translate(),
icon = ContentFinder<Texture2D>.Get("UI/Commands/Attack"),
action = () =>
{
List<FloatMenuOption> list = new List<FloatMenuOption>();
// 获取所有可接受的囚犯和奴隶
foreach (Pawn p in base.Map.mapPawns.AllPawnsSpawned)
{
if (p != null && !p.Destroyed && CanAcceptPawn(p).Accepted && (p.IsPrisonerOfColony || p.IsSlaveOfColony))
{
list.Add(new FloatMenuOption(
p.LabelCap + " (" + (p.IsPrisonerOfColony ? "Prisoner" : "Slave") + ")",
() => AssignCarrierForPrisoner(p),
p,
Color.white
));
}
}
if (!list.Any())
{
list.Add(new FloatMenuOption("NoPrisonersOrSlaves".Translate(), null));
}
Find.WindowStack.Add(new FloatMenu(list));
}
};
// 检查是否有可用的囚犯/奴隶
bool hasPrisonersOrSlaves = base.Map.mapPawns.AllPawnsSpawned
.Any(p => p != null && !p.Destroyed && CanAcceptPawn(p).Accepted && (p.IsPrisonerOfColony || p.IsSlaveOfColony));
if (!hasPrisonersOrSlaves)
{
command_CarryPrisoner.Disable("NoPrisonersOrSlaves".Translate());
}
yield return command_CarryPrisoner;
command_Action.Disable("NoViablePawns".Translate());
}
yield return command_Action;
// 指派搬运囚犯/奴隶的操作
var command_CarryPrisoner = new Command_Action
{
defaultLabel = "AssignCarryPrisoner".Translate() + "...",
defaultDesc = "AssignCarryPrisonerDesc".Translate(),
icon = ContentFinder<Texture2D>.Get("UI/Commands/Attack"),
action = () =>
{
List<FloatMenuOption> list = new List<FloatMenuOption>();
// 获取所有可接受的囚犯和奴隶
foreach (Pawn p in base.Map.mapPawns.AllPawnsSpawned)
{
if (p != null && !p.Destroyed && CanAcceptPawn(p).Accepted && (p.IsPrisonerOfColony || p.IsSlaveOfColony))
{
list.Add(new FloatMenuOption(
p.LabelCap + " (" + (p.IsPrisonerOfColony ? "Prisoner" : "Slave") + ")",
() => AssignCarrierForPrisoner(p),
p,
Color.white
));
}
}
if (!list.Any())
{
list.Add(new FloatMenuOption("NoPrisonersOrSlaves".Translate(), null));
}
Find.WindowStack.Add(new FloatMenu(list));
}
};
// 检查是否有可用的囚犯/奴隶
bool hasPrisonersOrSlaves = base.Map.mapPawns.AllPawnsSpawned
.Any(p => p != null && !p.Destroyed && CanAcceptPawn(p).Accepted && (p.IsPrisonerOfColony || p.IsSlaveOfColony));
if (!hasPrisonersOrSlaves)
{
command_CarryPrisoner.Disable("NoPrisonersOrSlaves".Translate());
}
yield return command_CarryPrisoner;
}
public override string GetInspectString()
@@ -568,7 +650,12 @@ namespace ArachnaeSwarm
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append(base.GetInspectString());
if (base.Working && selectedPawn != null && !selectedPawn.Destroyed)
if (selfDestructInitiated)
{
stringBuilder.AppendLineIfNotEmpty().Append("RefuelingVat_SelfDestructActive".Translate());
stringBuilder.AppendLineIfNotEmpty().Append("RefuelingVat_SelfDestructCountdown".Translate((MissingTicksBeforeDestruction - pawnMissingTickCount) / 60f));
}
else if (base.Working && selectedPawn != null && !selectedPawn.Destroyed)
{
stringBuilder.AppendLineIfNotEmpty().Append("CasketContains".Translate().ToString() + ": " + selectedPawn.NameShortColored.Resolve());
@@ -668,7 +755,7 @@ namespace ArachnaeSwarm
JobDef carryJobDef = DefDatabase<JobDef>.GetNamed("ARA_CarryPrisonerToRefuelingVat");
if (carryJobDef == null)
{
ArachnaeLog.Debug("ARA_CarryPrisonerToRefuelingVat JobDef not found!");
Log.Error("ARA_CarryPrisonerToRefuelingVat JobDef not found!");
return null;
}
Job job = JobMaker.MakeJob(carryJobDef, prisoner, this);
@@ -749,6 +836,8 @@ namespace ArachnaeSwarm
base.ExposeData();
Scribe_Collections.Look(ref pawnTickCounters, "pawnTickCounters", LookMode.Reference, LookMode.Value);
Scribe_Collections.Look(ref pawnsKilledByVat, "pawnsKilledByVat", LookMode.Reference);
Scribe_Values.Look(ref selfDestructInitiated, "selfDestructInitiated", false);
Scribe_Values.Look(ref pawnMissingTickCount, "pawnMissingTickCount", 0);
// 确保集合不为null
if (Scribe.mode == LoadSaveMode.PostLoadInit)

View File

@@ -74,7 +74,7 @@ namespace ArachnaeSwarm
new QualityHediffReward(0.30f, 1, false, "ARA_QualityReward_1Hediff"),
new QualityHediffReward(0.50f, 2, false, "ARA_QualityReward_2Hediff"),
new QualityHediffReward(0.85f, 3, false, "ARA_QualityReward_3Hediff"),
new QualityHediffReward(0.99f, 4, true, "ARA_QualityReward_AllHediff")
new QualityHediffReward(0.99f, 4, false, "ARA_QualityReward_4Hediff")
};
}
@@ -141,14 +141,7 @@ namespace ArachnaeSwarm
if (reward.qualityThreshold > 0 && reward.hediffCount > 0)
{
string rewardText = $" {reward.qualityThreshold:P0}: ";
if (reward.giveAllHediffs)
{
rewardText += "AllHediffsReward".Translate();
}
else
{
rewardText += "HediffCountReward".Translate(reward.hediffCount);
}
rewardText += "HediffCountReward".Translate(reward.hediffCount);
builder.AppendLine(rewardText);
}
}

View File

@@ -193,7 +193,7 @@ namespace ArachnaeSwarm
// 显示剩余时间
Rect timeRect = new Rect(0f, curY, viewRect.width, SmallLabelHeight);
string timeText = "TimeRemaining".Translate() + ": " + daysRemaining.ToString("F1") + " " + "Days".Translate();
string timeText = "ARA_OothecaIncubator.TimeRemaining".Translate() + ": " + daysRemaining.ToString("F1") + " " + "Days".Translate();
if (hoursRemaining > 0.1f && daysRemaining < 1f)
{
timeText += " (" + hoursRemaining.ToString("F1") + " " + "Hours".Translate() + ")";