更新更新
@@ -3,18 +3,18 @@
|
|||||||
<AbilityDef ParentName="AbilityTouchBase">
|
<AbilityDef ParentName="AbilityTouchBase">
|
||||||
<defName>ARA_BindDrone</defName>
|
<defName>ARA_BindDrone</defName>
|
||||||
<label>信息素标记</label>
|
<label>信息素标记</label>
|
||||||
<description>使用信息素标记一只阿拉克涅督虫,受到标记的督虫和其麾下的辅虫将誓死效忠于女皇种,并与其建立心灵链接。\n\n除了手动链接外,女皇种也会每60秒尝试自动链接所有未链接的阿拉克涅督虫,此类链接和手动链接不一样,不需要目视。</description>
|
<description>使用信息素标记一只阿拉克涅督虫(包括野生虫群子个体),受到标记的督虫和其麾下的辅虫将誓死效忠于女皇种,并与其建立心灵链接。\n\n除了手动链接外,女皇种也会每60秒尝试自动链接己方所有未链接的阿拉克涅督虫,此类链接和手动链接不一样,不需要目视。</description>
|
||||||
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_BindDrone</iconPath> <!-- Placeholder: You'll need to create this icon -->
|
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_BindDrone</iconPath> <!-- Placeholder: You'll need to create this icon -->
|
||||||
|
|
||||||
<hotKey>Misc1</hotKey>
|
<hotKey>Misc1</hotKey>
|
||||||
<jobDef>CastAbilityOnThing</jobDef>
|
<jobDef>CastAbilityOnThing</jobDef>
|
||||||
<targetRequired>true</targetRequired>
|
<targetRequired>true</targetRequired>
|
||||||
<cooldownTicksRange>60</cooldownTicksRange> <!-- 1 second cooldown -->
|
<cooldownTicksRange>600</cooldownTicksRange> <!-- 1 second cooldown -->
|
||||||
|
|
||||||
<verbProperties>
|
<verbProperties>
|
||||||
<verbClass>Verb_CastAbility</verbClass>
|
<verbClass>Verb_CastAbility</verbClass>
|
||||||
<warmupTime>0</warmupTime>
|
<warmupTime>1</warmupTime>
|
||||||
<range>99</range>
|
<range>30</range>
|
||||||
<targetParams>
|
<targetParams>
|
||||||
<canTargetPawns>true</canTargetPawns>
|
<canTargetPawns>true</canTargetPawns>
|
||||||
<canTargetBuildings>false</canTargetBuildings>
|
<canTargetBuildings>false</canTargetBuildings>
|
||||||
@@ -863,6 +863,45 @@
|
|||||||
</comps>
|
</comps>
|
||||||
</AbilityDef>
|
</AbilityDef>
|
||||||
|
|
||||||
|
<AbilityDef>
|
||||||
|
<defName>ARA_FireSpew</defName>
|
||||||
|
<label>爆燃火焰</label>
|
||||||
|
<description>爆燃种经过短暂蓄力后,向前大范围地喷出火焰。这种火焰喷射距离不是太长,但是可以形成一道致密的火墙。</description>
|
||||||
|
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_FireSpew</iconPath>
|
||||||
|
<cooldownTicksRange>5000</cooldownTicksRange>
|
||||||
|
<aiCanUse>true</aiCanUse>
|
||||||
|
<ai_IsIncendiary>true</ai_IsIncendiary>
|
||||||
|
<sendMessageOnCooldownComplete>true</sendMessageOnCooldownComplete>
|
||||||
|
<warmupStartSound>FireSpew_Warmup</warmupStartSound>
|
||||||
|
<charges>3</charges>
|
||||||
|
<cooldownPerCharge>true</cooldownPerCharge>
|
||||||
|
<verbProperties>
|
||||||
|
<verbClass>Verb_CastAbility</verbClass>
|
||||||
|
<range>10</range>
|
||||||
|
<warmupTime>1</warmupTime>
|
||||||
|
<soundCast>FireSpew_Resolve</soundCast>
|
||||||
|
<targetParams>
|
||||||
|
<canTargetLocations>true</canTargetLocations>
|
||||||
|
</targetParams>
|
||||||
|
</verbProperties>
|
||||||
|
<comps>
|
||||||
|
<li Class="ArachnaeSwarm.CompProperties_AbilityNeedCost">
|
||||||
|
<customLabel>饮食</customLabel>
|
||||||
|
<showProgressBar>true</showProgressBar>
|
||||||
|
<needDef>Food</needDef>
|
||||||
|
<needCost>0.25</needCost>
|
||||||
|
<failMessage>营养值不足,需要进食</failMessage>
|
||||||
|
</li>
|
||||||
|
<li Class="CompProperties_AbilityFireSpew">
|
||||||
|
<range>10</range>
|
||||||
|
<lineWidthEnd>35</lineWidthEnd>
|
||||||
|
<filthDef>Filth_FlammableBile</filthDef>
|
||||||
|
<effecterDef>Fire_Spew</effecterDef>
|
||||||
|
<canHitFilledCells>true</canHitFilledCells>
|
||||||
|
</li>
|
||||||
|
</comps>
|
||||||
|
</AbilityDef>
|
||||||
|
|
||||||
<AbilityDef>
|
<AbilityDef>
|
||||||
<defName>ARA_TerrainHeal_Ability</defName>
|
<defName>ARA_TerrainHeal_Ability</defName>
|
||||||
<label>护士装疗愈</label>
|
<label>护士装疗愈</label>
|
||||||
@@ -1093,8 +1132,8 @@
|
|||||||
<warmupStartSound>AcidSpray_Warmup</warmupStartSound>
|
<warmupStartSound>AcidSpray_Warmup</warmupStartSound>
|
||||||
<verbProperties>
|
<verbProperties>
|
||||||
<verbClass>Verb_CastAbility</verbClass>
|
<verbClass>Verb_CastAbility</verbClass>
|
||||||
<range>-1</range>
|
<range>24</range>
|
||||||
<warmupTime>0.1</warmupTime>
|
<warmupTime>0</warmupTime>
|
||||||
<soundCast>AcidSpray_Resolve</soundCast>
|
<soundCast>AcidSpray_Resolve</soundCast>
|
||||||
<violent>false</violent>
|
<violent>false</violent>
|
||||||
<targetable>false</targetable>
|
<targetable>false</targetable>
|
||||||
@@ -1124,6 +1163,7 @@
|
|||||||
<cooldownTicksRange>1000</cooldownTicksRange>
|
<cooldownTicksRange>1000</cooldownTicksRange>
|
||||||
<charges>3</charges>
|
<charges>3</charges>
|
||||||
<cooldownPerCharge>true</cooldownPerCharge>
|
<cooldownPerCharge>true</cooldownPerCharge>
|
||||||
|
<aiCanUse>false</aiCanUse>
|
||||||
<hostile>false</hostile>
|
<hostile>false</hostile>
|
||||||
<casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
|
<casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
|
||||||
<verbProperties>
|
<verbProperties>
|
||||||
@@ -1296,7 +1336,7 @@
|
|||||||
<description>只要一声令下,阿拉克涅虫族随时可以为了虫巢的大业立刻死去</description>
|
<description>只要一声令下,阿拉克涅虫族随时可以为了虫巢的大业立刻死去</description>
|
||||||
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Suicide_Ability</iconPath>
|
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Suicide_Ability</iconPath>
|
||||||
<cooldownTicksRange>1</cooldownTicksRange>
|
<cooldownTicksRange>1</cooldownTicksRange>
|
||||||
<aiCanUse>true</aiCanUse>
|
<aiCanUse>false</aiCanUse>
|
||||||
<displayOrder>9900</displayOrder>
|
<displayOrder>9900</displayOrder>
|
||||||
<displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
|
<displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
|
||||||
<warmupStartSound>AcidSpray_Warmup</warmupStartSound>
|
<warmupStartSound>AcidSpray_Warmup</warmupStartSound>
|
||||||
|
|||||||
@@ -31,10 +31,12 @@
|
|||||||
<li>(0.35, 0.65)</li>
|
<li>(0.35, 0.65)</li>
|
||||||
<li>(0.5, 0.5)</li>
|
<li>(0.5, 0.5)</li>
|
||||||
<li>(0.65, 0.35)</li>
|
<li>(0.65, 0.35)</li>
|
||||||
<li>(0.85, 0.15)</li> <!-- 高严重性(0.85)时, 只需要造成15%的伤害 -->
|
<li>(0.85, 0.15)</li>
|
||||||
|
<li>(1.25, 0.01)</li>
|
||||||
|
<li>(2.5, 0.001)</li> <!-- 高严重性(0.85)时, 只需要造成15%的伤害 -->
|
||||||
</points>
|
</points>
|
||||||
</requiredDamagePercentageCurve>
|
</requiredDamagePercentageCurve>
|
||||||
<destroyChance>1.0</destroyChance>
|
<destroyChance>0.25</destroyChance>
|
||||||
</li>
|
</li>
|
||||||
</modExtensions>
|
</modExtensions>
|
||||||
<additionalHediffs>
|
<additionalHediffs>
|
||||||
|
|||||||
@@ -81,43 +81,8 @@
|
|||||||
<kindDef>Combat</kindDef>
|
<kindDef>Combat</kindDef>
|
||||||
<commonality>100</commonality>
|
<commonality>100</commonality>
|
||||||
<options>
|
<options>
|
||||||
<ARA_Raid_AcidSwarm>20</ARA_Raid_AcidSwarm>
|
<ArachnaeBase_Race_Acidcut_Enermy>7</ArachnaeBase_Race_Acidcut_Enermy>
|
||||||
<ARA_Raid_Acidling>5</ARA_Raid_Acidling>
|
<ArachnaeNode_Race_ShieldHead_Enermy>3</ArachnaeNode_Race_ShieldHead_Enermy>
|
||||||
</options>
|
|
||||||
</li>
|
|
||||||
</pawnGroupMakers>
|
|
||||||
</li>
|
|
||||||
<li Class="ArachnaeSwarm.Effect_TriggerRaid">
|
|
||||||
<points>10000</points>
|
|
||||||
<faction>ARA_Hostile_Hive</faction>
|
|
||||||
<raidStrategy>ImmediateAttack</raidStrategy>
|
|
||||||
<raidArrivalMode>EdgeWalkIn</raidArrivalMode>
|
|
||||||
<groupKind>Combat</groupKind>
|
|
||||||
<pawnGroupMakers>
|
|
||||||
<li>
|
|
||||||
<kindDef>Combat</kindDef>
|
|
||||||
<commonality>100</commonality>
|
|
||||||
<options>
|
|
||||||
<ARA_Raid_AcidSwarm>20</ARA_Raid_AcidSwarm>
|
|
||||||
<ARA_Raid_Heavy>3</ARA_Raid_Heavy>
|
|
||||||
</options>
|
|
||||||
</li>
|
|
||||||
</pawnGroupMakers>
|
|
||||||
</li>
|
|
||||||
<li Class="ArachnaeSwarm.Effect_TriggerRaid">
|
|
||||||
<points>10000</points>
|
|
||||||
<faction>ARA_Hostile_Hive</faction>
|
|
||||||
<raidStrategy>ImmediateAttack</raidStrategy>
|
|
||||||
<raidArrivalMode>EdgeWalkIn</raidArrivalMode>
|
|
||||||
<groupKind>Combat</groupKind>
|
|
||||||
<pawnGroupMakers>
|
|
||||||
<li>
|
|
||||||
<kindDef>Combat</kindDef>
|
|
||||||
<commonality>100</commonality>
|
|
||||||
<options>
|
|
||||||
<ARA_Raid_AcidSwarm>20</ARA_Raid_AcidSwarm>
|
|
||||||
<ARA_Raid_Shooter>3</ARA_Raid_Shooter>
|
|
||||||
<ARA_Raid_Assault>7</ARA_Raid_Assault>
|
|
||||||
</options>
|
</options>
|
||||||
</li>
|
</li>
|
||||||
</pawnGroupMakers>
|
</pawnGroupMakers>
|
||||||
|
|||||||
@@ -345,6 +345,35 @@
|
|||||||
<isBad>false</isBad>
|
<isBad>false</isBad>
|
||||||
<scenarioCanAdd>false</scenarioCanAdd>
|
<scenarioCanAdd>false</scenarioCanAdd>
|
||||||
<maxSeverity>1.0</maxSeverity>
|
<maxSeverity>1.0</maxSeverity>
|
||||||
|
<renderNodeProperties>
|
||||||
|
<li>
|
||||||
|
<nodeClass>PawnRenderNode_AttachmentHead</nodeClass>
|
||||||
|
<workerClass>PawnRenderNodeWorker_FlipWhenCrawling</workerClass>
|
||||||
|
<texPath>ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_Stomach</texPath>
|
||||||
|
<parentTagDef>Body</parentTagDef>
|
||||||
|
<useSkinShader>false</useSkinShader>
|
||||||
|
<useRottenColor>false</useRottenColor>
|
||||||
|
<rotDrawMode>Fresh, Rotting</rotDrawMode>
|
||||||
|
<drawData>
|
||||||
|
<dataNorth>
|
||||||
|
<offset>(0, 0, -0.05)</offset>
|
||||||
|
<layer>120</layer>
|
||||||
|
</dataNorth>
|
||||||
|
<dataEast>
|
||||||
|
<offset>(0, 0, -0.05)</offset>
|
||||||
|
</dataEast>
|
||||||
|
<dataSouth>
|
||||||
|
<offset>(0, 0, -0.05)</offset>
|
||||||
|
</dataSouth>
|
||||||
|
<dataWest>
|
||||||
|
<offset>(0, 0, -0.05)</offset>
|
||||||
|
</dataWest>
|
||||||
|
<defaultData>
|
||||||
|
<layer>-40</layer>
|
||||||
|
</defaultData>
|
||||||
|
</drawData>
|
||||||
|
</li>
|
||||||
|
</renderNodeProperties>
|
||||||
<!-- <stages>
|
<!-- <stages>
|
||||||
<li>
|
<li>
|
||||||
<becomeVisible>ture</becomeVisible>
|
<becomeVisible>ture</becomeVisible>
|
||||||
@@ -403,11 +432,13 @@
|
|||||||
<li Class="HediffCompProperties_GiveAbility">
|
<li Class="HediffCompProperties_GiveAbility">
|
||||||
<abilityDefs>
|
<abilityDefs>
|
||||||
<li>ARA_Myrmecocystus_Production_Medicine</li>
|
<li>ARA_Myrmecocystus_Production_Medicine</li>
|
||||||
|
<li>ARA_Myrmecocystus_Production_Fuel</li>
|
||||||
</abilityDefs>
|
</abilityDefs>
|
||||||
</li>
|
</li>
|
||||||
<li Class="HediffCompProperties_RemoveIfOtherHediff">
|
<li Class="HediffCompProperties_RemoveIfOtherHediff">
|
||||||
<hediffs>
|
<hediffs>
|
||||||
<li>ARA_Myrmecocystus_Production_Medicine</li>
|
<li>ARA_Myrmecocystus_Production_Medicine</li>
|
||||||
|
<li>ARA_Myrmecocystus_Production_Fuel</li>
|
||||||
</hediffs>
|
</hediffs>
|
||||||
</li>
|
</li>
|
||||||
</comps>
|
</comps>
|
||||||
@@ -472,6 +503,35 @@
|
|||||||
<isBad>false</isBad>
|
<isBad>false</isBad>
|
||||||
<scenarioCanAdd>false</scenarioCanAdd>
|
<scenarioCanAdd>false</scenarioCanAdd>
|
||||||
<maxSeverity>1.0</maxSeverity>
|
<maxSeverity>1.0</maxSeverity>
|
||||||
|
<renderNodeProperties>
|
||||||
|
<li>
|
||||||
|
<nodeClass>PawnRenderNode_AttachmentHead</nodeClass>
|
||||||
|
<workerClass>PawnRenderNodeWorker_FlipWhenCrawling</workerClass>
|
||||||
|
<texPath>ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_StomachMedicine</texPath>
|
||||||
|
<parentTagDef>Body</parentTagDef>
|
||||||
|
<useSkinShader>false</useSkinShader>
|
||||||
|
<useRottenColor>false</useRottenColor>
|
||||||
|
<rotDrawMode>Fresh, Rotting</rotDrawMode>
|
||||||
|
<drawData>
|
||||||
|
<dataNorth>
|
||||||
|
<offset>(0, 0, -0.05)</offset>
|
||||||
|
<layer>120</layer>
|
||||||
|
</dataNorth>
|
||||||
|
<dataEast>
|
||||||
|
<offset>(0, 0, -0.05)</offset>
|
||||||
|
</dataEast>
|
||||||
|
<dataSouth>
|
||||||
|
<offset>(0, 0, -0.05)</offset>
|
||||||
|
</dataSouth>
|
||||||
|
<dataWest>
|
||||||
|
<offset>(0, 0, -0.05)</offset>
|
||||||
|
</dataWest>
|
||||||
|
<defaultData>
|
||||||
|
<layer>-40</layer>
|
||||||
|
</defaultData>
|
||||||
|
</drawData>
|
||||||
|
</li>
|
||||||
|
</renderNodeProperties>
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
<minSeverity>0.01</minSeverity>
|
<minSeverity>0.01</minSeverity>
|
||||||
@@ -490,6 +550,148 @@
|
|||||||
</li>
|
</li>
|
||||||
</comps>
|
</comps>
|
||||||
</HediffDef>
|
</HediffDef>
|
||||||
|
<AbilityDef>
|
||||||
|
<defName>ARA_Myrmecocystus_Production_Fuel</defName>
|
||||||
|
<label>蜜罐种转换——易燃腔室</label>
|
||||||
|
<description>使蜜罐种发生内驱性进化,以牺牲生产阿拉克涅虫蜜的代价,使其可以产出化合燃料,增强其护甲并给予其额外的喷射火焰的能力。\n\n该进化过程不可逆!</description>
|
||||||
|
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Myrmecocystus_Production_Fuel</iconPath>
|
||||||
|
<cooldownTicksRange>1800</cooldownTicksRange>
|
||||||
|
<hostile>false</hostile>
|
||||||
|
<groupAbility>true</groupAbility>
|
||||||
|
<displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
|
||||||
|
<disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
|
||||||
|
<aiCanUse>false</aiCanUse>
|
||||||
|
<ai_IsOffensive>true</ai_IsOffensive>
|
||||||
|
<targetRequired>false</targetRequired>
|
||||||
|
<jobDef>CastAbilityOnThing</jobDef>
|
||||||
|
<verbProperties>
|
||||||
|
<verbClass>Verb_CastAbility</verbClass>
|
||||||
|
<range>1</range>
|
||||||
|
<warmupTime>12</warmupTime>
|
||||||
|
<soundCast>AcidSpray_Resolve</soundCast>
|
||||||
|
<violent>false</violent>
|
||||||
|
<targetable>false</targetable>
|
||||||
|
<targetParams>
|
||||||
|
<canTargetSelf>True</canTargetSelf>
|
||||||
|
</targetParams>
|
||||||
|
</verbProperties>
|
||||||
|
<comps>
|
||||||
|
<li Class="CompProperties_AbilityGiveHediff">
|
||||||
|
<compClass>CompAbilityEffect_GiveHediff</compClass>
|
||||||
|
<hediffDef>ARA_Myrmecocystus_Production_Fuel</hediffDef>
|
||||||
|
<onlyApplyToSelf>True</onlyApplyToSelf>
|
||||||
|
<replaceExisting>true</replaceExisting>
|
||||||
|
<severity>1</severity>
|
||||||
|
</li>
|
||||||
|
<li Class="ArachnaeSwarm.CompProperties_AbilityResearchPrereq">
|
||||||
|
<requiredResearch>ARA_Technology_8FEL</requiredResearch>
|
||||||
|
<failMessage>需要科技 节点FEL-8"爆燃腔" 以解锁进化</failMessage>
|
||||||
|
</li>
|
||||||
|
</comps>
|
||||||
|
</AbilityDef>
|
||||||
|
<HediffDef>
|
||||||
|
<defName>ARA_Myrmecocystus_Production_Fuel</defName>
|
||||||
|
<label>亚种-爆燃种</label>
|
||||||
|
<description>这只阿拉克涅蜜罐种已经获得拔耀,不再生产虫蜜,而是生产巢穴所稀缺的化合燃料,并可以通过喷射火焰对抗敌人。</description>
|
||||||
|
<descriptionHyperlinks>
|
||||||
|
<ThingDef>Chemfuel</ThingDef>
|
||||||
|
</descriptionHyperlinks>
|
||||||
|
<hediffClass>HediffWithComps</hediffClass>
|
||||||
|
<defaultLabelColor>(0.6, 0.4, 0.8)</defaultLabelColor>
|
||||||
|
<isBad>false</isBad>
|
||||||
|
<scenarioCanAdd>false</scenarioCanAdd>
|
||||||
|
<maxSeverity>1.0</maxSeverity>
|
||||||
|
<renderNodeProperties>
|
||||||
|
<li>
|
||||||
|
<nodeClass>PawnRenderNode_AttachmentHead</nodeClass>
|
||||||
|
<workerClass>PawnRenderNodeWorker_FlipWhenCrawling</workerClass>
|
||||||
|
<texPath>ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_StomachFuel</texPath>
|
||||||
|
<parentTagDef>Body</parentTagDef>
|
||||||
|
<useSkinShader>false</useSkinShader>
|
||||||
|
<useRottenColor>false</useRottenColor>
|
||||||
|
<rotDrawMode>Fresh, Rotting</rotDrawMode>
|
||||||
|
<drawData>
|
||||||
|
<dataNorth>
|
||||||
|
<offset>(0, 0, -0.05)</offset>
|
||||||
|
<layer>120</layer>
|
||||||
|
</dataNorth>
|
||||||
|
<dataEast>
|
||||||
|
<offset>(0, 0, -0.05)</offset>
|
||||||
|
</dataEast>
|
||||||
|
<dataSouth>
|
||||||
|
<offset>(0, 0, -0.05)</offset>
|
||||||
|
</dataSouth>
|
||||||
|
<dataWest>
|
||||||
|
<offset>(0, 0, -0.05)</offset>
|
||||||
|
</dataWest>
|
||||||
|
<defaultData>
|
||||||
|
<layer>-40</layer>
|
||||||
|
</defaultData>
|
||||||
|
</drawData>
|
||||||
|
</li>
|
||||||
|
</renderNodeProperties>
|
||||||
|
<stages>
|
||||||
|
<li>
|
||||||
|
<minSeverity>0.01</minSeverity>
|
||||||
|
<statOffsets>
|
||||||
|
<ArmorRating_Blunt>0.5</ArmorRating_Blunt>
|
||||||
|
<ArmorRating_Sharp>0.5</ArmorRating_Sharp>
|
||||||
|
</statOffsets>
|
||||||
|
</li>
|
||||||
|
</stages>
|
||||||
|
<comps>
|
||||||
|
<li Class="ArachnaeSwarm.MoharHediffs.HediffCompProperties_Spawner">
|
||||||
|
<!--
|
||||||
|
==================================================
|
||||||
|
基础设置 (Basic Settings)
|
||||||
|
==================================================
|
||||||
|
-->
|
||||||
|
<!-- [DEBUG] 如果为true,则为此组件启用详细的调试日志记录。 -->
|
||||||
|
<debug>true</debug>
|
||||||
|
<!-- 要生成的物品的ThingDef。 -->
|
||||||
|
<thingToSpawn>Chemfuel</thingToSpawn>
|
||||||
|
<!-- 每次生成的基础物品数量。 -->
|
||||||
|
<spawnCount>20</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_FireSpew</li>
|
||||||
|
</abilityDefs>
|
||||||
|
</li>
|
||||||
|
</comps>
|
||||||
|
</HediffDef>
|
||||||
|
|
||||||
<!-- 战士种 -->
|
<!-- 战士种 -->
|
||||||
<HediffDef>
|
<HediffDef>
|
||||||
@@ -795,9 +997,41 @@
|
|||||||
<isBad>false</isBad>
|
<isBad>false</isBad>
|
||||||
<scenarioCanAdd>false</scenarioCanAdd>
|
<scenarioCanAdd>false</scenarioCanAdd>
|
||||||
<maxSeverity>1.0</maxSeverity>
|
<maxSeverity>1.0</maxSeverity>
|
||||||
|
<renderNodeProperties>
|
||||||
|
<li>
|
||||||
|
<nodeClass>PawnRenderNode_AttachmentHead</nodeClass>
|
||||||
|
<workerClass>PawnRenderNodeWorker_FlipWhenCrawling</workerClass>
|
||||||
|
<texPath>ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Addons_ShieldBody</texPath>
|
||||||
|
<parentTagDef>Body</parentTagDef>
|
||||||
|
<useSkinShader>false</useSkinShader>
|
||||||
|
<useRottenColor>false</useRottenColor>
|
||||||
|
<rotDrawMode>Fresh, Rotting</rotDrawMode>
|
||||||
|
<drawData>
|
||||||
|
<dataNorth>
|
||||||
|
<offset>(0, 0, 0)</offset>
|
||||||
|
</dataNorth>
|
||||||
|
<dataEast>
|
||||||
|
<offset>(0, 0, 0)</offset>
|
||||||
|
</dataEast>
|
||||||
|
<dataSouth>
|
||||||
|
<offset>(0, 0, 0)</offset>
|
||||||
|
</dataSouth>
|
||||||
|
<dataWest>
|
||||||
|
<offset>(0, 0, 0)</offset>
|
||||||
|
</dataWest>
|
||||||
|
<defaultData>
|
||||||
|
<layer>40</layer>
|
||||||
|
</defaultData>
|
||||||
|
</drawData>
|
||||||
|
</li>
|
||||||
|
</renderNodeProperties>
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
<minSeverity>0</minSeverity>
|
<minSeverity>0</minSeverity>
|
||||||
|
<statOffsets>
|
||||||
|
<ArmorRating_Blunt>0.4</ArmorRating_Blunt>
|
||||||
|
<ArmorRating_Sharp>0.5</ArmorRating_Sharp>
|
||||||
|
</statOffsets>
|
||||||
</li>
|
</li>
|
||||||
</stages>
|
</stages>
|
||||||
<comps>
|
<comps>
|
||||||
@@ -849,11 +1083,13 @@
|
|||||||
<li Class="HediffCompProperties_GiveAbility">
|
<li Class="HediffCompProperties_GiveAbility">
|
||||||
<abilityDefs>
|
<abilityDefs>
|
||||||
<li>ARA_ShieldHead_Protector</li>
|
<li>ARA_ShieldHead_Protector</li>
|
||||||
|
<li>ARA_ShieldHead_HiveBuilder</li>
|
||||||
</abilityDefs>
|
</abilityDefs>
|
||||||
</li>
|
</li>
|
||||||
<li Class="HediffCompProperties_RemoveIfOtherHediff">
|
<li Class="HediffCompProperties_RemoveIfOtherHediff">
|
||||||
<hediffs>
|
<hediffs>
|
||||||
<li>ARA_ShieldHead_Protector</li>
|
<li>ARA_ShieldHead_Protector</li>
|
||||||
|
<li>ARA_ShieldHead_HiveBuilder</li>
|
||||||
</hediffs>
|
</hediffs>
|
||||||
</li>
|
</li>
|
||||||
</comps>
|
</comps>
|
||||||
@@ -925,11 +1161,41 @@
|
|||||||
<isBad>false</isBad>
|
<isBad>false</isBad>
|
||||||
<scenarioCanAdd>false</scenarioCanAdd>
|
<scenarioCanAdd>false</scenarioCanAdd>
|
||||||
<maxSeverity>1.0</maxSeverity>
|
<maxSeverity>1.0</maxSeverity>
|
||||||
|
<renderNodeProperties>
|
||||||
|
<li>
|
||||||
|
<nodeClass>PawnRenderNode_AttachmentHead</nodeClass>
|
||||||
|
<workerClass>PawnRenderNodeWorker_FlipWhenCrawling</workerClass>
|
||||||
|
<texPath>ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Addons_ShieldBody</texPath>
|
||||||
|
<parentTagDef>Body</parentTagDef>
|
||||||
|
<useSkinShader>false</useSkinShader>
|
||||||
|
<useRottenColor>false</useRottenColor>
|
||||||
|
<rotDrawMode>Fresh, Rotting</rotDrawMode>
|
||||||
|
<drawData>
|
||||||
|
<dataNorth>
|
||||||
|
<offset>(0, 0, 0)</offset>
|
||||||
|
</dataNorth>
|
||||||
|
<dataEast>
|
||||||
|
<offset>(0, 0, 0)</offset>
|
||||||
|
</dataEast>
|
||||||
|
<dataSouth>
|
||||||
|
<offset>(0, 0, 0)</offset>
|
||||||
|
</dataSouth>
|
||||||
|
<dataWest>
|
||||||
|
<offset>(0, 0, 0)</offset>
|
||||||
|
</dataWest>
|
||||||
|
<defaultData>
|
||||||
|
<layer>800</layer>
|
||||||
|
</defaultData>
|
||||||
|
</drawData>
|
||||||
|
</li>
|
||||||
|
</renderNodeProperties>
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
<minSeverity>0.01</minSeverity>
|
<minSeverity>0</minSeverity>
|
||||||
<statOffsets>
|
<statOffsets>
|
||||||
<MoveSpeed>1</MoveSpeed>
|
<MoveSpeed>1</MoveSpeed>
|
||||||
|
<ArmorRating_Blunt>0.4</ArmorRating_Blunt>
|
||||||
|
<ArmorRating_Sharp>0.5</ArmorRating_Sharp>
|
||||||
</statOffsets>
|
</statOffsets>
|
||||||
</li>
|
</li>
|
||||||
</stages>
|
</stages>
|
||||||
@@ -941,6 +1207,116 @@
|
|||||||
</li>
|
</li>
|
||||||
</comps>
|
</comps>
|
||||||
</HediffDef>
|
</HediffDef>
|
||||||
|
<AbilityDef>
|
||||||
|
<defName>ARA_ShieldHead_HiveBuilder</defName>
|
||||||
|
<label>盾头种转换——营建大师</label>
|
||||||
|
<description>使盾头种发生内驱性进化,以防御能力为代价,使其获得更强大的甲壳素产出能力和建造技能。\n\n该进化过程不可逆!</description>
|
||||||
|
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_ShieldHead_HiveBuilder</iconPath>
|
||||||
|
<cooldownTicksRange>1800</cooldownTicksRange>
|
||||||
|
<hostile>false</hostile>
|
||||||
|
<groupAbility>true</groupAbility>
|
||||||
|
<displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
|
||||||
|
<disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
|
||||||
|
<aiCanUse>false</aiCanUse>
|
||||||
|
<ai_IsOffensive>true</ai_IsOffensive>
|
||||||
|
<targetRequired>false</targetRequired>
|
||||||
|
<jobDef>CastAbilityOnThing</jobDef>
|
||||||
|
<verbProperties>
|
||||||
|
<verbClass>Verb_CastAbility</verbClass>
|
||||||
|
<range>1</range>
|
||||||
|
<warmupTime>12</warmupTime>
|
||||||
|
<soundCast>AcidSpray_Resolve</soundCast>
|
||||||
|
<violent>false</violent>
|
||||||
|
<targetable>false</targetable>
|
||||||
|
<targetParams>
|
||||||
|
<canTargetSelf>True</canTargetSelf>
|
||||||
|
</targetParams>
|
||||||
|
</verbProperties>
|
||||||
|
<comps>
|
||||||
|
<li Class="CompProperties_AbilityGiveHediff">
|
||||||
|
<compClass>CompAbilityEffect_GiveHediff</compClass>
|
||||||
|
<hediffDef>ARA_ShieldHead_HiveBuilder</hediffDef>
|
||||||
|
<onlyApplyToSelf>True</onlyApplyToSelf>
|
||||||
|
<replaceExisting>true</replaceExisting>
|
||||||
|
<severity>1</severity>
|
||||||
|
</li>
|
||||||
|
<li Class="ArachnaeSwarm.CompProperties_AbilityAddExtraExp">
|
||||||
|
<skillChanges>
|
||||||
|
<li>
|
||||||
|
<skill>Construction</skill>
|
||||||
|
<passionGained>Major</passionGained>
|
||||||
|
<xpGainAmount>350000</xpGainAmount>
|
||||||
|
</li>
|
||||||
|
</skillChanges>
|
||||||
|
</li>
|
||||||
|
<li Class="ArachnaeSwarm.CompProperties_AbilityResearchPrereq">
|
||||||
|
<requiredResearch>ARA_Technology_3CON</requiredResearch>
|
||||||
|
<failMessage>需要科技 节点CON-3"建造者" 以解锁进化</failMessage>
|
||||||
|
</li>
|
||||||
|
</comps>
|
||||||
|
</AbilityDef>
|
||||||
|
<HediffDef>
|
||||||
|
<defName>ARA_ShieldHead_HiveBuilder</defName>
|
||||||
|
<label>亚种-营建种</label>
|
||||||
|
<description>这只阿拉克涅盾头种已经获得拔耀,获得了强大的产出能力和建造能力。一只盾头种每天产出25份甲壳素。</description>
|
||||||
|
<hediffClass>HediffWithComps</hediffClass>
|
||||||
|
<defaultLabelColor>(0.6, 0.4, 0.8)</defaultLabelColor>
|
||||||
|
<isBad>false</isBad>
|
||||||
|
<scenarioCanAdd>false</scenarioCanAdd>
|
||||||
|
<maxSeverity>1.0</maxSeverity>
|
||||||
|
<stages>
|
||||||
|
<li>
|
||||||
|
<minSeverity>0</minSeverity>
|
||||||
|
</li>
|
||||||
|
</stages>
|
||||||
|
<comps>
|
||||||
|
<li Class="ArachnaeSwarm.MoharHediffs.HediffCompProperties_Spawner">
|
||||||
|
<!--
|
||||||
|
==================================================
|
||||||
|
基础设置 (Basic Settings)
|
||||||
|
==================================================
|
||||||
|
-->
|
||||||
|
<!-- [DEBUG] 如果为true,则为此组件启用详细的调试日志记录。 -->
|
||||||
|
<debug>true</debug>
|
||||||
|
<!-- 要生成的物品的ThingDef。 -->
|
||||||
|
<thingToSpawn>ARA_Carapace</thingToSpawn>
|
||||||
|
<!-- 每次生成的基础物品数量。 -->
|
||||||
|
<spawnCount>25</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>
|
||||||
|
</comps>
|
||||||
|
</HediffDef>
|
||||||
|
|
||||||
<!-- 空天种 -->
|
<!-- 空天种 -->
|
||||||
<HediffDef>
|
<HediffDef>
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
</categories>
|
</categories>
|
||||||
</li>
|
</li>
|
||||||
</backstoryFilters>
|
</backstoryFilters>
|
||||||
<techLevel>Medieval</techLevel>
|
<techLevel>Industrial</techLevel>
|
||||||
<arrivalLayerWhitelist>
|
<arrivalLayerWhitelist>
|
||||||
<li>Surface</li>
|
<li>Surface</li>
|
||||||
<!-- <li MayRequire="Ludeon.RimWorld.Odyssey">Orbit</li> -->
|
<!-- <li MayRequire="Ludeon.RimWorld.Odyssey">Orbit</li> -->
|
||||||
@@ -30,12 +30,12 @@
|
|||||||
<colorSpectrum>
|
<colorSpectrum>
|
||||||
<li>(0.6, 0.5, 0.9)</li>
|
<li>(0.6, 0.5, 0.9)</li>
|
||||||
</colorSpectrum>
|
</colorSpectrum>
|
||||||
<!-- <arrivalModeWhitelist>
|
<arrivalModeWhitelist>
|
||||||
<li>EdgeDrop</li>
|
<li>EdgeDrop</li>
|
||||||
<li>EdgeDropGroups</li>
|
<li>EdgeDropGroups</li>
|
||||||
<li>CenterDrop</li>
|
<!-- <li>CenterDrop</li> -->
|
||||||
<li>RandomDrop</li>
|
<li>RandomDrop</li>
|
||||||
</arrivalModeWhitelist> -->
|
</arrivalModeWhitelist>
|
||||||
<raidCommonalityFromPointsCurve>
|
<raidCommonalityFromPointsCurve>
|
||||||
<points>
|
<points>
|
||||||
<li>(300, 0)</li>
|
<li>(300, 0)</li>
|
||||||
@@ -47,11 +47,24 @@
|
|||||||
</raidCommonalityFromPointsCurve>
|
</raidCommonalityFromPointsCurve>
|
||||||
<pawnGroupMakers>
|
<pawnGroupMakers>
|
||||||
<li>
|
<li>
|
||||||
<!-- Normal fights, standard mix -->
|
<commonality>100</commonality>
|
||||||
<kindDef>Combat</kindDef>
|
<kindDef>Combat</kindDef>
|
||||||
<options>
|
<options>
|
||||||
<ARA_Raid_Shooter>7</ARA_Raid_Shooter>
|
<ArachnaeNode_Race_Praetorian_Enermy>3</ArachnaeNode_Race_Praetorian_Enermy>
|
||||||
<ARA_Raid_Assault>3</ARA_Raid_Assault>
|
</options>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<commonality>80</commonality>
|
||||||
|
<kindDef>Combat</kindDef>
|
||||||
|
<options>
|
||||||
|
<ArachnaeNode_Race_ShieldHead_Enermy>3</ArachnaeNode_Race_ShieldHead_Enermy>
|
||||||
|
</options>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<commonality>80</commonality>
|
||||||
|
<kindDef>Combat</kindDef>
|
||||||
|
<options>
|
||||||
|
<ArachnaeNode_Race_Fighter_Enermy>5</ArachnaeNode_Race_Fighter_Enermy>
|
||||||
</options>
|
</options>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
@@ -76,7 +89,7 @@
|
|||||||
</raidLootValueFromPointsCurve>
|
</raidLootValueFromPointsCurve>
|
||||||
<humanlikeFaction>true</humanlikeFaction>
|
<humanlikeFaction>true</humanlikeFaction>
|
||||||
<hidden>true</hidden>
|
<hidden>true</hidden>
|
||||||
<!-- <autoFlee>false</autoFlee> -->
|
<autoFlee>false</autoFlee>
|
||||||
<canUseAvoidGrid>false</canUseAvoidGrid>
|
<canUseAvoidGrid>false</canUseAvoidGrid>
|
||||||
<apparelStuffFilter>
|
<apparelStuffFilter>
|
||||||
<thingDefs>
|
<thingDefs>
|
||||||
@@ -97,8 +110,8 @@
|
|||||||
<allowedArrivalTemperatureRange>-2000~2000</allowedArrivalTemperatureRange>
|
<allowedArrivalTemperatureRange>-2000~2000</allowedArrivalTemperatureRange>
|
||||||
<maxConfigurableAtWorldCreation>1</maxConfigurableAtWorldCreation>
|
<maxConfigurableAtWorldCreation>1</maxConfigurableAtWorldCreation>
|
||||||
<configurationListOrderPriority>900</configurationListOrderPriority>
|
<configurationListOrderPriority>900</configurationListOrderPriority>
|
||||||
<dropPodActive>ActiveDropPodMechanoid</dropPodActive>
|
<dropPodActive>ARA_ActiveDropPod</dropPodActive>
|
||||||
<dropPodIncoming>DropPodIncomingMechanoidRapid</dropPodIncoming>
|
<dropPodIncoming>ARA_DropPodIncoming</dropPodIncoming>
|
||||||
<disallowedRaidAgeRestrictions>
|
<disallowedRaidAgeRestrictions>
|
||||||
<li MayRequire="Ludeon.RimWorld.Biotech">Children</li>
|
<li MayRequire="Ludeon.RimWorld.Biotech">Children</li>
|
||||||
</disallowedRaidAgeRestrictions>
|
</disallowedRaidAgeRestrictions>
|
||||||
|
|||||||
@@ -473,7 +473,7 @@
|
|||||||
<HediffDef>
|
<HediffDef>
|
||||||
<defName>ARA_CryoShock</defName>
|
<defName>ARA_CryoShock</defName>
|
||||||
<label>急速冷却</label>
|
<label>急速冷却</label>
|
||||||
<description>目标正处于急冻状态。这种状态将导致目标身体结构极度脆弱。当此效果加深时,足以摧毁其身体部位的“冷冻”伤害阈值将会显著降低。</description>
|
<description>目标正处于急冻状态。这种状态将导致目标身体结构极度脆弱。当此效果加深时,其身体部位有可能会被冷冻伤害直接摧毁。</description>
|
||||||
<defaultLabelColor>(1, 1, 0.8)</defaultLabelColor>
|
<defaultLabelColor>(1, 1, 0.8)</defaultLabelColor>
|
||||||
<hediffClass>ArachnaeSwarm.HediffCurseFlame</hediffClass>
|
<hediffClass>ArachnaeSwarm.HediffCurseFlame</hediffClass>
|
||||||
<comps>
|
<comps>
|
||||||
@@ -493,11 +493,11 @@
|
|||||||
</injuryProps>
|
</injuryProps>
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
<label>轻微</label>
|
<label>1/8</label>
|
||||||
<becomeVisible>true</becomeVisible>
|
<becomeVisible>true</becomeVisible>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<label>轻微</label>
|
<label>2/8</label>
|
||||||
<minSeverity>0.2</minSeverity>
|
<minSeverity>0.2</minSeverity>
|
||||||
<statOffsets>
|
<statOffsets>
|
||||||
<ComfyTemperatureMin>40</ComfyTemperatureMin>
|
<ComfyTemperatureMin>40</ComfyTemperatureMin>
|
||||||
@@ -513,7 +513,7 @@
|
|||||||
</capMods>
|
</capMods>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<label>中等</label>
|
<label>3/8</label>
|
||||||
<minSeverity>0.35</minSeverity>
|
<minSeverity>0.35</minSeverity>
|
||||||
<statOffsets>
|
<statOffsets>
|
||||||
<ComfyTemperatureMin>80</ComfyTemperatureMin>
|
<ComfyTemperatureMin>80</ComfyTemperatureMin>
|
||||||
@@ -529,7 +529,7 @@
|
|||||||
</capMods>
|
</capMods>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<label>严重</label>
|
<label>4/8</label>
|
||||||
<minSeverity>0.5</minSeverity>
|
<minSeverity>0.5</minSeverity>
|
||||||
<statOffsets>
|
<statOffsets>
|
||||||
<ComfyTemperatureMin>120</ComfyTemperatureMin>
|
<ComfyTemperatureMin>120</ComfyTemperatureMin>
|
||||||
@@ -545,7 +545,7 @@
|
|||||||
</capMods>
|
</capMods>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<label>极度</label>
|
<label>5/8</label>
|
||||||
<minSeverity>0.65</minSeverity>
|
<minSeverity>0.65</minSeverity>
|
||||||
<statOffsets>
|
<statOffsets>
|
||||||
<ComfyTemperatureMin>160</ComfyTemperatureMin>
|
<ComfyTemperatureMin>160</ComfyTemperatureMin>
|
||||||
@@ -561,7 +561,7 @@
|
|||||||
</capMods>
|
</capMods>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<label>完全</label>
|
<label>6/8</label>
|
||||||
<minSeverity>0.85</minSeverity>
|
<minSeverity>0.85</minSeverity>
|
||||||
<statOffsets>
|
<statOffsets>
|
||||||
<ComfyTemperatureMin>200</ComfyTemperatureMin>
|
<ComfyTemperatureMin>200</ComfyTemperatureMin>
|
||||||
@@ -576,6 +576,38 @@
|
|||||||
</li>
|
</li>
|
||||||
</capMods>
|
</capMods>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<label>7/8</label>
|
||||||
|
<minSeverity>1.25</minSeverity>
|
||||||
|
<statOffsets>
|
||||||
|
<ComfyTemperatureMin>500</ComfyTemperatureMin>
|
||||||
|
</statOffsets>
|
||||||
|
<statFactors>
|
||||||
|
<ARA_IcezKillingFactor>0.01</ARA_IcezKillingFactor>
|
||||||
|
</statFactors>
|
||||||
|
<capMods>
|
||||||
|
<li>
|
||||||
|
<capacity>Consciousness</capacity>
|
||||||
|
<offset>-0.50</offset>
|
||||||
|
</li>
|
||||||
|
</capMods>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<label>8/8</label>
|
||||||
|
<minSeverity>2.5</minSeverity>
|
||||||
|
<statOffsets>
|
||||||
|
<ComfyTemperatureMin>1000</ComfyTemperatureMin>
|
||||||
|
</statOffsets>
|
||||||
|
<statFactors>
|
||||||
|
<ARA_IcezKillingFactor>0.001</ARA_IcezKillingFactor>
|
||||||
|
</statFactors>
|
||||||
|
<capMods>
|
||||||
|
<li>
|
||||||
|
<capacity>Consciousness</capacity>
|
||||||
|
<offset>-0.50</offset>
|
||||||
|
</li>
|
||||||
|
</capMods>
|
||||||
|
</li>
|
||||||
</stages>
|
</stages>
|
||||||
</HediffDef>
|
</HediffDef>
|
||||||
</Defs>
|
</Defs>
|
||||||
@@ -163,6 +163,17 @@
|
|||||||
<li>
|
<li>
|
||||||
<naturalHealingFactor>0</naturalHealingFactor>
|
<naturalHealingFactor>0</naturalHealingFactor>
|
||||||
<painFactor>0</painFactor>
|
<painFactor>0</painFactor>
|
||||||
|
<foodPoisoningChanceFactor>0</foodPoisoningChanceFactor>
|
||||||
|
<disablesNeeds>
|
||||||
|
<li>Mood</li>
|
||||||
|
<li>Joy</li>
|
||||||
|
<li>Beauty</li>
|
||||||
|
<li>Comfort</li>
|
||||||
|
<li>Outdoors</li>
|
||||||
|
<li>Indoors</li>
|
||||||
|
<li>DrugDesire</li>
|
||||||
|
<li>RoomSize</li>
|
||||||
|
</disablesNeeds>
|
||||||
<statFactors>
|
<statFactors>
|
||||||
<MeleeCooldownFactor>1.5</MeleeCooldownFactor>
|
<MeleeCooldownFactor>1.5</MeleeCooldownFactor>
|
||||||
<PsychicSensitivity>0</PsychicSensitivity>
|
<PsychicSensitivity>0</PsychicSensitivity>
|
||||||
|
|||||||
@@ -1,205 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<Defs>
|
|
||||||
<!-- 自定义袭击定义,defname是硬编码指定不能更改 -->
|
|
||||||
<ArachnaeSwarm.CustomRaidDef>
|
|
||||||
<defName>ARA_SpecialAttack</defName>
|
|
||||||
<factionDef>ARA_Hostile_Hive</factionDef>
|
|
||||||
<pointWavePools>
|
|
||||||
<li>
|
|
||||||
<minPoints>0</minPoints>
|
|
||||||
<maxPoints>800</maxPoints>
|
|
||||||
<wavePool>ARA_WavePool_Stage1</wavePool>
|
|
||||||
</li>
|
|
||||||
</pointWavePools>
|
|
||||||
<baseRaidNembers>3</baseRaidNembers>
|
|
||||||
<pointsGrowthPerWave>
|
|
||||||
<growthType>Linear</growthType>
|
|
||||||
<linearGrowth>1.2</linearGrowth>
|
|
||||||
</pointsGrowthPerWave>
|
|
||||||
</ArachnaeSwarm.CustomRaidDef>
|
|
||||||
<!-- 第一阶段波次池 -->
|
|
||||||
<ArachnaeSwarm.RaidWavePoolDef>
|
|
||||||
<defName>ARA_WavePool_Stage1</defName>
|
|
||||||
<waves>
|
|
||||||
<li>ARA_Wave_Scout_Patrol</li>
|
|
||||||
<li>ARA_Wave_Assault_Team</li>
|
|
||||||
<li>ARA_Wave_Acid_Swarm</li>
|
|
||||||
<li>ARA_Wave_Heavy_Defense</li>
|
|
||||||
<li>ARA_Wave_Mixed_Forces</li>
|
|
||||||
</waves>
|
|
||||||
<selectionWeights>
|
|
||||||
<li>
|
|
||||||
<key>ARA_Wave_Scout_Patrol</key>
|
|
||||||
<value>0.25</value>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<key>ARA_Wave_Assault_Team</key>
|
|
||||||
<value>0.25</value>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<key>ARA_Wave_Acid_Swarm</key>
|
|
||||||
<value>0.20</value>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<key>ARA_Wave_Heavy_Defense</key>
|
|
||||||
<value>0.15</value>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<key>ARA_Wave_Mixed_Forces</key>
|
|
||||||
<value>0.15</value>
|
|
||||||
</li>
|
|
||||||
</selectionWeights>
|
|
||||||
</ArachnaeSwarm.RaidWavePoolDef>
|
|
||||||
|
|
||||||
<!-- 波次1: 侦察巡逻队 -->
|
|
||||||
<ArachnaeSwarm.RaidWaveDef>
|
|
||||||
<defName>ARA_Wave_Scout_Patrol</defName>
|
|
||||||
<label>侦察巡逻队</label>
|
|
||||||
<description>一支小型侦察队伍,主要由远程单位组成,进行骚扰射击</description>
|
|
||||||
<possibleArrivalModes>
|
|
||||||
<li>CenterDrop</li>
|
|
||||||
</possibleArrivalModes>
|
|
||||||
<pawnComposition>
|
|
||||||
<li>
|
|
||||||
<pawnKind>ARA_Raid_Shooter</pawnKind>
|
|
||||||
<ratio>0.7</ratio>
|
|
||||||
<minCount>2</minCount>
|
|
||||||
<maxCount>6</maxCount>
|
|
||||||
<DefaultUnit>true</DefaultUnit>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<pawnKind>ARA_Raid_Assault</pawnKind>
|
|
||||||
<ratio>0.3</ratio>
|
|
||||||
<minCount>1</minCount>
|
|
||||||
<maxCount>3</maxCount>
|
|
||||||
</li>
|
|
||||||
</pawnComposition>
|
|
||||||
</ArachnaeSwarm.RaidWaveDef>
|
|
||||||
<!-- 波次2: 突击小队 -->
|
|
||||||
<ArachnaeSwarm.RaidWaveDef>
|
|
||||||
<defName>ARA_Wave_Assault_Team</defName>
|
|
||||||
<label>突击小队</label>
|
|
||||||
<description>以近战单位为主的快速突击队伍,擅长冲锋陷阵</description>
|
|
||||||
<possibleArrivalModes>
|
|
||||||
<li>CenterDrop</li>
|
|
||||||
</possibleArrivalModes>
|
|
||||||
<pawnComposition>
|
|
||||||
<li>
|
|
||||||
<pawnKind>ARA_Raid_Assault</pawnKind>
|
|
||||||
<ratio>0.6</ratio>
|
|
||||||
<minCount>3</minCount>
|
|
||||||
<maxCount>8</maxCount>
|
|
||||||
<DefaultUnit>true</DefaultUnit>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<pawnKind>ARA_Raid_Shooter</pawnKind>
|
|
||||||
<ratio>0.4</ratio>
|
|
||||||
<minCount>2</minCount>
|
|
||||||
<maxCount>4</maxCount>
|
|
||||||
</li>
|
|
||||||
</pawnComposition>
|
|
||||||
</ArachnaeSwarm.RaidWaveDef>
|
|
||||||
<!-- 波次3: 酸液虫群 -->
|
|
||||||
<ArachnaeSwarm.RaidWaveDef>
|
|
||||||
<defName>ARA_Wave_Acid_Swarm</defName>
|
|
||||||
<label>酸液虫群</label>
|
|
||||||
<description>大量酸噬种辅虫组成的虫海战术,数量庞大但个体脆弱</description>
|
|
||||||
<possibleArrivalModes>
|
|
||||||
<li>CenterDrop</li>
|
|
||||||
</possibleArrivalModes>
|
|
||||||
<pawnComposition>
|
|
||||||
<li>
|
|
||||||
<pawnKind>ARA_Raid_AcidSwarm</pawnKind>
|
|
||||||
<ratio>0.8</ratio>
|
|
||||||
<minCount>8</minCount>
|
|
||||||
<maxCount>20</maxCount>
|
|
||||||
<DefaultUnit>true</DefaultUnit>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<pawnKind>ARA_Raid_Assault</pawnKind>
|
|
||||||
<ratio>0.2</ratio>
|
|
||||||
<minCount>2</minCount>
|
|
||||||
<maxCount>5</maxCount>
|
|
||||||
</li>
|
|
||||||
</pawnComposition>
|
|
||||||
</ArachnaeSwarm.RaidWaveDef>
|
|
||||||
<!-- 波次4: 重装防御 -->
|
|
||||||
<ArachnaeSwarm.RaidWaveDef>
|
|
||||||
<defName>ARA_Wave_Heavy_Defense</defName>
|
|
||||||
<label>重装防御队</label>
|
|
||||||
<description>以盾头种为主的防御型队伍,移动缓慢但防御力强</description>
|
|
||||||
<possibleArrivalModes>
|
|
||||||
<li>CenterDrop</li>
|
|
||||||
</possibleArrivalModes>
|
|
||||||
<pawnComposition>
|
|
||||||
<li>
|
|
||||||
<pawnKind>ARA_Raid_Heavy</pawnKind>
|
|
||||||
<ratio>0.5</ratio>
|
|
||||||
<minCount>2</minCount>
|
|
||||||
<maxCount>6</maxCount>
|
|
||||||
<DefaultUnit>true</DefaultUnit>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<pawnKind>ARA_Raid_Shooter</pawnKind>
|
|
||||||
<ratio>0.3</ratio>
|
|
||||||
<minCount>2</minCount>
|
|
||||||
<maxCount>4</maxCount>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<pawnKind>ARA_Raid_Acidling</pawnKind>
|
|
||||||
<ratio>0.2</ratio>
|
|
||||||
<minCount>3</minCount>
|
|
||||||
<maxCount>8</maxCount>
|
|
||||||
</li>
|
|
||||||
</pawnComposition>
|
|
||||||
</ArachnaeSwarm.RaidWaveDef>
|
|
||||||
<!-- 波次5: 混合部队 -->
|
|
||||||
<ArachnaeSwarm.RaidWaveDef>
|
|
||||||
<defName>ARA_Wave_Mixed_Forces</defName>
|
|
||||||
<label>混合部队</label>
|
|
||||||
<description>均衡配置的混合部队,包含各种单位类型</description>
|
|
||||||
<possibleArrivalModes>
|
|
||||||
<li>CenterDrop</li>
|
|
||||||
</possibleArrivalModes>
|
|
||||||
<pawnComposition>
|
|
||||||
<li>
|
|
||||||
<pawnKind>ARA_Raid_Assault</pawnKind>
|
|
||||||
<ratio>0.3</ratio>
|
|
||||||
<minCount>2</minCount>
|
|
||||||
<maxCount>5</maxCount>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<pawnKind>ARA_Raid_Shooter</pawnKind>
|
|
||||||
<ratio>0.3</ratio>
|
|
||||||
<minCount>2</minCount>
|
|
||||||
<maxCount>5</maxCount>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<pawnKind>ARA_Raid_Heavy</pawnKind>
|
|
||||||
<ratio>0.2</ratio>
|
|
||||||
<minCount>1</minCount>
|
|
||||||
<maxCount>3</maxCount>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<pawnKind>ARA_Raid_AcidSwarm</pawnKind>
|
|
||||||
<ratio>0.2</ratio>
|
|
||||||
<minCount>3</minCount>
|
|
||||||
<maxCount>6</maxCount>
|
|
||||||
<DefaultUnit>true</DefaultUnit>
|
|
||||||
</li>
|
|
||||||
</pawnComposition>
|
|
||||||
</ArachnaeSwarm.RaidWaveDef>
|
|
||||||
|
|
||||||
<!-- 事件定义 -->
|
|
||||||
<IncidentDef>
|
|
||||||
<defName>ARA_Raid_Incident</defName>
|
|
||||||
<label>阿拉克涅虫群袭击</label>
|
|
||||||
<workerClass>ArachnaeSwarm.IncidentWorker_CustomRaid</workerClass>
|
|
||||||
<category>Special</category>
|
|
||||||
<minRefireDays>5</minRefireDays>
|
|
||||||
<baseChance>0</baseChance>
|
|
||||||
<targetTags>
|
|
||||||
<li>Map_PlayerHome</li>
|
|
||||||
</targetTags>
|
|
||||||
</IncidentDef>
|
|
||||||
</Defs>
|
|
||||||
@@ -1,144 +1,85 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<Defs>
|
<Defs>
|
||||||
<!-- 基础袭击者类型 -->
|
<PawnKindDef ParentName="ArachnaeNode_Race_Fighter">
|
||||||
<PawnKindDef Name="ARA_RaidBase" Abstract="True">
|
<defName>ArachnaeNode_Race_Fighter_Enermy</defName>
|
||||||
<combatPower>150</combatPower>
|
|
||||||
<isFighter>true</isFighter>
|
<isFighter>true</isFighter>
|
||||||
<trader>false</trader>
|
<trader>false</trader>
|
||||||
<chemicalAddictionChance>0</chemicalAddictionChance>
|
<chemicalAddictionChance>0</chemicalAddictionChance>
|
||||||
<apparelIgnoreSeasons>true</apparelIgnoreSeasons>
|
<apparelIgnoreSeasons>true</apparelIgnoreSeasons>
|
||||||
<forceNormalGearQuality>true</forceNormalGearQuality>
|
<forceNormalGearQuality>true</forceNormalGearQuality>
|
||||||
<initialWillRange>99~99</initialWillRange>
|
|
||||||
<initialResistanceRange>99~99</initialResistanceRange>
|
|
||||||
<overrideDeathOnDownedChance>1</overrideDeathOnDownedChance>
|
<overrideDeathOnDownedChance>1</overrideDeathOnDownedChance>
|
||||||
<forceDeathOnDowned>true</forceDeathOnDowned>
|
<forceDeathOnDowned>true</forceDeathOnDowned>
|
||||||
<maxGenerationAge>2</maxGenerationAge>
|
|
||||||
<minGenerationAge>1</minGenerationAge>
|
|
||||||
<canBeScattered>false</canBeScattered>
|
<canBeScattered>false</canBeScattered>
|
||||||
<defaultFactionType>ARA_Hostile_Hive</defaultFactionType>
|
<defaultFactionType>ARA_Hostile_Hive</defaultFactionType>
|
||||||
<techHediffsMoney>0</techHediffsMoney>
|
|
||||||
<requiredWorkTags>
|
|
||||||
<li>Violent</li>
|
|
||||||
</requiredWorkTags>
|
|
||||||
<moveSpeedFactorByTerrainTag>
|
|
||||||
<li>
|
|
||||||
<key>ARA_Creep</key>
|
|
||||||
<value>1.5</value>
|
|
||||||
</li>
|
|
||||||
</moveSpeedFactorByTerrainTag>
|
|
||||||
</PawnKindDef>
|
|
||||||
|
|
||||||
<!-- 传统类:以毒针、酸液和近战战士虫组成阵线,辅助以小辅虫 -->
|
|
||||||
<!-- 近战突击单位 -->
|
|
||||||
<PawnKindDef ParentName="ARA_RaidBase">
|
|
||||||
<defName>ARA_Raid_Assault</defName>
|
|
||||||
<label>阿拉克涅突击者</label>
|
|
||||||
<race>ArachnaeNode_Race_Fighter</race>
|
|
||||||
<combatPower>200</combatPower>
|
|
||||||
<weaponTags>
|
<weaponTags>
|
||||||
<li>ARA_Armed_Organ_Melee</li>
|
<li>ARA_Armed_Organ_T1</li>
|
||||||
</weaponTags>
|
</weaponTags>
|
||||||
<apparelTags>
|
<apparelTags>
|
||||||
<li>ARA_Inner</li>
|
<li>ARA_Inner</li>
|
||||||
<li>ARA_Clothes</li>
|
<li>ARA_Clothes</li>
|
||||||
</apparelTags>
|
</apparelTags>
|
||||||
<apparelMoney>200</apparelMoney>
|
<apparelMoney>1000</apparelMoney>
|
||||||
<weaponMoney>50000</weaponMoney>
|
<weaponMoney>5000</weaponMoney>
|
||||||
<abilities>
|
<combatPower>250</combatPower>
|
||||||
<li>ARA_BaseRace_Acid_Launcher</li>
|
|
||||||
</abilities>
|
|
||||||
</PawnKindDef>
|
</PawnKindDef>
|
||||||
<!-- 远程射手单位 -->
|
<PawnKindDef ParentName="ArachnaeNode_Race_ShieldHead">
|
||||||
<PawnKindDef ParentName="ARA_RaidBase">
|
<defName>ArachnaeNode_Race_ShieldHead_Enermy</defName>
|
||||||
<defName>ARA_Raid_Shooter</defName>
|
<isFighter>true</isFighter>
|
||||||
<label>阿拉克涅射手</label>
|
<trader>false</trader>
|
||||||
<race>ArachnaeNode_Race_Fighter</race>
|
<chemicalAddictionChance>0</chemicalAddictionChance>
|
||||||
<combatPower>180</combatPower>
|
<apparelIgnoreSeasons>true</apparelIgnoreSeasons>
|
||||||
|
<forceNormalGearQuality>true</forceNormalGearQuality>
|
||||||
|
<overrideDeathOnDownedChance>1</overrideDeathOnDownedChance>
|
||||||
|
<forceDeathOnDowned>true</forceDeathOnDowned>
|
||||||
|
<canBeScattered>false</canBeScattered>
|
||||||
|
<defaultFactionType>ARA_Hostile_Hive</defaultFactionType>
|
||||||
<weaponTags>
|
<weaponTags>
|
||||||
<li>ARA_Armed_Organ_Small_Ranged_Needle</li>
|
<li>ARA_Armed_Organ_T1</li>
|
||||||
<li>ARA_Armed_Organ_Small_Ranged_Acid</li>
|
|
||||||
</weaponTags>
|
</weaponTags>
|
||||||
<apparelTags>
|
<apparelTags>
|
||||||
<li>ARA_Inner</li>
|
<li>ARA_Inner</li>
|
||||||
|
<li>ARA_Clothes</li>
|
||||||
</apparelTags>
|
</apparelTags>
|
||||||
<apparelMoney>150</apparelMoney>
|
<apparelMoney>1000</apparelMoney>
|
||||||
<weaponMoney>50000</weaponMoney>
|
<weaponMoney>5000</weaponMoney>
|
||||||
<techHediffsMoney>0</techHediffsMoney>
|
<combatPower>330</combatPower>
|
||||||
<abilities>
|
|
||||||
<li>ARA_BaseRace_Acid_Launcher</li>
|
|
||||||
</abilities>
|
|
||||||
</PawnKindDef>
|
</PawnKindDef>
|
||||||
|
<PawnKindDef ParentName="ArachnaeNode_Race_Praetorian">
|
||||||
|
<defName>ArachnaeNode_Race_Praetorian_Enermy</defName>
|
||||||
|
<isFighter>true</isFighter>
|
||||||
|
<trader>false</trader>
|
||||||
|
<chemicalAddictionChance>0</chemicalAddictionChance>
|
||||||
|
<apparelIgnoreSeasons>true</apparelIgnoreSeasons>
|
||||||
|
<forceNormalGearQuality>true</forceNormalGearQuality>
|
||||||
|
<overrideDeathOnDownedChance>1</overrideDeathOnDownedChance>
|
||||||
|
<forceDeathOnDowned>true</forceDeathOnDowned>
|
||||||
|
<canBeScattered>false</canBeScattered>
|
||||||
|
<defaultFactionType>ARA_Hostile_Hive</defaultFactionType>
|
||||||
|
<weaponTags>
|
||||||
|
<li>ARA_Armed_Organ_T3</li>
|
||||||
|
</weaponTags>
|
||||||
|
<apparelTags>
|
||||||
|
<li>ARA_Inner</li>
|
||||||
|
<li>ARA_Clothes</li>
|
||||||
|
</apparelTags>
|
||||||
|
<apparelMoney>1000</apparelMoney>
|
||||||
|
<weaponMoney>5000</weaponMoney>
|
||||||
|
<combatPower>700</combatPower>
|
||||||
|
</PawnKindDef>
|
||||||
|
|
||||||
<!-- 辅虫群单位 -->
|
<!-- 辅虫群单位 -->
|
||||||
<PawnKindDef ParentName="ARA_RaidBase">
|
<PawnKindDef ParentName="ArachnaeBase_Race_Acidcut">
|
||||||
<defName>ARA_Raid_AcidSwarm</defName>
|
<defName>ArachnaeBase_Race_Acidcut_Enermy</defName>
|
||||||
<label>阿拉克涅酸噬群</label>
|
|
||||||
<combatPower>80</combatPower>
|
|
||||||
<apparelMoney>0</apparelMoney>
|
|
||||||
<weaponMoney>0</weaponMoney>
|
|
||||||
<techHediffsMoney>0</techHediffsMoney>
|
|
||||||
<race>ArachnaeBase_Race_Acidcut</race>
|
|
||||||
<lifeStages>
|
|
||||||
<li>
|
|
||||||
<bodyGraphicData>
|
|
||||||
<texPath>ArachnaeSwarm/Things/ARA_Acidcut/Bodies/Naked_Thin</texPath>
|
|
||||||
<drawSize>1</drawSize>
|
|
||||||
<shadowData>
|
|
||||||
<volume>(0.4, 0.5, 0.37)</volume>
|
|
||||||
<offset>(0,0,-0.15)</offset>
|
|
||||||
</shadowData>
|
|
||||||
</bodyGraphicData>
|
|
||||||
<dessicatedBodyGraphicData>
|
|
||||||
<texPath>Things/Pawn/Animal/Spelopede/Dessicated_Spelopede</texPath>
|
|
||||||
<drawSize>1</drawSize>
|
|
||||||
</dessicatedBodyGraphicData>
|
|
||||||
</li>
|
|
||||||
</lifeStages>
|
|
||||||
</PawnKindDef>
|
|
||||||
|
|
||||||
<!-- 重装类:远近盾头混搭,辅以自杀辅虫和攻击辅虫 -->
|
|
||||||
<!-- 重型单位,远近混搭 -->
|
|
||||||
<PawnKindDef ParentName="ARA_RaidBase">
|
|
||||||
<defName>ARA_Raid_Heavy</defName>
|
|
||||||
<label>阿拉克涅重装兵</label>
|
|
||||||
<race>ArachnaeNode_Race_ShieldHead</race>
|
|
||||||
<combatPower>350</combatPower>
|
|
||||||
<weaponTags>
|
|
||||||
<li>ARA_Armed_Organ_Melee</li>
|
|
||||||
<li>ARA_Armed_Organ_Small_Ranged_Needle</li>
|
|
||||||
<li>ARA_Armed_Organ_Small_Ranged_Acid</li>
|
|
||||||
</weaponTags>
|
|
||||||
<apparelTags>
|
|
||||||
<li>ARA_Inner</li>
|
|
||||||
<li>ARA_Clothes</li>
|
|
||||||
</apparelTags>
|
|
||||||
<apparelMoney>400</apparelMoney>
|
|
||||||
<weaponMoney>1200</weaponMoney>
|
|
||||||
<techHediffsMoney>0</techHediffsMoney>
|
|
||||||
</PawnKindDef>
|
|
||||||
<!-- 自杀辅虫群单位 -->
|
|
||||||
<PawnKindDef ParentName="ARA_InsectKindBase">
|
|
||||||
<defName>ARA_Raid_Acidling</defName>
|
|
||||||
<label>阿拉克涅爆裂群</label>
|
|
||||||
<race>ArachnaeBase_Race_Acidling</race>
|
|
||||||
<combatPower>50</combatPower>
|
<combatPower>50</combatPower>
|
||||||
<apparelMoney>0</apparelMoney>
|
<apparelMoney>0</apparelMoney>
|
||||||
<weaponMoney>0</weaponMoney>
|
<weaponMoney>0</weaponMoney>
|
||||||
<techHediffsMoney>0</techHediffsMoney>
|
<techHediffsMoney>0</techHediffsMoney>
|
||||||
<lifeStages>
|
</PawnKindDef>
|
||||||
<li>
|
<PawnKindDef ParentName="ArachnaeBase_Race_Acidling">
|
||||||
<bodyGraphicData>
|
<defName>ArachnaeBase_Race_Acidling_Enermy</defName>
|
||||||
<texPath>ArachnaeSwarm/Things/ARA_Acidling/Bodies/Naked_Thin</texPath>
|
<combatPower>150</combatPower>
|
||||||
<drawSize>1</drawSize>
|
<apparelMoney>0</apparelMoney>
|
||||||
<shadowData>
|
<weaponMoney>0</weaponMoney>
|
||||||
<volume>(0.4, 0.5, 0.37)</volume>
|
<techHediffsMoney>0</techHediffsMoney>
|
||||||
<offset>(0,0,-0.15)</offset>
|
|
||||||
</shadowData>
|
|
||||||
</bodyGraphicData>
|
|
||||||
<dessicatedBodyGraphicData>
|
|
||||||
<texPath>Things/Pawn/Animal/Spelopede/Dessicated_Spelopede</texPath>
|
|
||||||
<drawSize>1</drawSize>
|
|
||||||
</dessicatedBodyGraphicData>
|
|
||||||
</li>
|
|
||||||
</lifeStages>
|
|
||||||
</PawnKindDef>
|
</PawnKindDef>
|
||||||
</Defs>
|
</Defs>
|
||||||
|
|||||||
@@ -217,7 +217,7 @@
|
|||||||
</apparelTags>
|
</apparelTags>
|
||||||
<apparelMoney>0</apparelMoney>
|
<apparelMoney>0</apparelMoney>
|
||||||
</PawnKindDef>
|
</PawnKindDef>
|
||||||
<PawnKindDef ParentName="ArachnaeNodeABasePawnKind">
|
<PawnKindDef Name="ArachnaeNode_Race_ShieldHead" ParentName="ArachnaeNodeABasePawnKind">
|
||||||
<defName>ArachnaeNode_Race_ShieldHead</defName>
|
<defName>ArachnaeNode_Race_ShieldHead</defName>
|
||||||
<label>阿拉克涅盾头种</label>
|
<label>阿拉克涅盾头种</label>
|
||||||
<race>ArachnaeNode_Race_ShieldHead</race>
|
<race>ArachnaeNode_Race_ShieldHead</race>
|
||||||
@@ -282,7 +282,7 @@
|
|||||||
</apparelTags>
|
</apparelTags>
|
||||||
<apparelMoney>0</apparelMoney>
|
<apparelMoney>0</apparelMoney>
|
||||||
</PawnKindDef>
|
</PawnKindDef>
|
||||||
<PawnKindDef ParentName="ArachnaeNodeABasePawnKind">
|
<PawnKindDef Name="ArachnaeNode_Race_Fighter" ParentName="ArachnaeNodeABasePawnKind">
|
||||||
<defName>ArachnaeNode_Race_Fighter</defName>
|
<defName>ArachnaeNode_Race_Fighter</defName>
|
||||||
<label>阿拉克涅战士种</label>
|
<label>阿拉克涅战士种</label>
|
||||||
<race>ArachnaeNode_Race_Fighter</race>
|
<race>ArachnaeNode_Race_Fighter</race>
|
||||||
@@ -390,7 +390,7 @@
|
|||||||
</apparelTags>
|
</apparelTags>
|
||||||
<apparelMoney>0</apparelMoney>
|
<apparelMoney>0</apparelMoney>
|
||||||
</PawnKindDef>
|
</PawnKindDef>
|
||||||
<PawnKindDef ParentName="ArachnaeNodeABasePawnKind">
|
<PawnKindDef Name="ArachnaeNode_Race_Praetorian" ParentName="ArachnaeNodeABasePawnKind">
|
||||||
<defName>ArachnaeNode_Race_Praetorian</defName>
|
<defName>ArachnaeNode_Race_Praetorian</defName>
|
||||||
<label>阿拉克涅禁卫种</label>
|
<label>阿拉克涅禁卫种</label>
|
||||||
<race>ArachnaeNode_Race_Praetorian</race>
|
<race>ArachnaeNode_Race_Praetorian</race>
|
||||||
@@ -520,7 +520,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</lifeStages>
|
</lifeStages>
|
||||||
</PawnKindDef>
|
</PawnKindDef>
|
||||||
<PawnKindDef ParentName="ARA_InsectKindBase">
|
<PawnKindDef Name="ArachnaeBase_Race_Acidcut" ParentName="ARA_InsectKindBase">
|
||||||
<defName>ArachnaeBase_Race_Acidcut</defName>
|
<defName>ArachnaeBase_Race_Acidcut</defName>
|
||||||
<label>阿拉克涅酸噬种</label>
|
<label>阿拉克涅酸噬种</label>
|
||||||
<race>ArachnaeBase_Race_Acidcut</race>
|
<race>ArachnaeBase_Race_Acidcut</race>
|
||||||
@@ -541,7 +541,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</lifeStages>
|
</lifeStages>
|
||||||
</PawnKindDef>
|
</PawnKindDef>
|
||||||
<PawnKindDef ParentName="ARA_InsectKindBase">
|
<PawnKindDef Name="ArachnaeBase_Race_Acidling" ParentName="ARA_InsectKindBase">
|
||||||
<defName>ArachnaeBase_Race_Acidling</defName>
|
<defName>ArachnaeBase_Race_Acidling</defName>
|
||||||
<label>阿拉克涅爆裂种</label>
|
<label>阿拉克涅爆裂种</label>
|
||||||
<race>ArachnaeBase_Race_Acidling</race>
|
<race>ArachnaeBase_Race_Acidling</race>
|
||||||
|
|||||||
38
1.6/1.6/Defs/PawnsArrivalModeDefs/ARA_PawnsArrivalModes.xml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Defs>
|
||||||
|
<PawnsArrivalModeDef>
|
||||||
|
<defName>ARA_EdgeDropGroups</defName>
|
||||||
|
<workerClass>PawnsArrivalModeWorker_EdgeDropGroups</workerClass>
|
||||||
|
<layerWhitelist>
|
||||||
|
<li>Surface</li>
|
||||||
|
<li MayRequire="Ludeon.RimWorld.Odyssey">Orbit</li>
|
||||||
|
</layerWhitelist>
|
||||||
|
<minSpaceSelectionWeight>0.1</minSpaceSelectionWeight>
|
||||||
|
<selectionWeightCurve>
|
||||||
|
<points>
|
||||||
|
<li>(0, 1)</li>
|
||||||
|
<li>(99999, 1)</li>
|
||||||
|
</points>
|
||||||
|
</selectionWeightCurve>
|
||||||
|
<selectionWeightCurvesPerFaction>
|
||||||
|
<li>
|
||||||
|
<faction>ARA_Hostile_Hive</faction>
|
||||||
|
<selectionWeightPerPointsCurve>
|
||||||
|
<points>
|
||||||
|
<li>(0, 1)</li>
|
||||||
|
<li>(99999, 1)</li>
|
||||||
|
</points>
|
||||||
|
</selectionWeightPerPointsCurve>
|
||||||
|
</li>
|
||||||
|
</selectionWeightCurvesPerFaction>
|
||||||
|
<!-- <pointsFactorCurve>
|
||||||
|
<points>
|
||||||
|
<li>0, 0.9</li>
|
||||||
|
</points>
|
||||||
|
</pointsFactorCurve> -->
|
||||||
|
<minTechLevel>Medieval</minTechLevel>
|
||||||
|
<textEnemy>一些来自 {1} 的 {0} 正在通过气囊种空降到附近。</textEnemy>
|
||||||
|
<textFriendly>Several separate groups of friendly {0} from {1} have arrived in transport pods nearby.</textFriendly>
|
||||||
|
<textWillArrive>Several separate groups of {0_pawnsPluralDef} will arrive in transport pods.</textWillArrive>
|
||||||
|
</PawnsArrivalModeDef>
|
||||||
|
</Defs>
|
||||||
@@ -608,7 +608,7 @@
|
|||||||
<ResearchProjectDef ParentName="ARA_techBase_Needtechprint">
|
<ResearchProjectDef ParentName="ARA_techBase_Needtechprint">
|
||||||
<defName>ARA_Technology_1MED</defName>
|
<defName>ARA_Technology_1MED</defName>
|
||||||
<label>节点MED-1"疗愈种"</label>
|
<label>节点MED-1"疗愈种"</label>
|
||||||
<description>允许蜜罐种进行定向进化,以强化其自身的医疗能力并解锁孵化医药茧的技能。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。</description>
|
<description>允许蜜罐种进行定向进化,抛弃生产虫蜜的能力,以强化其自身的医疗能力并解锁孵化医药茧的技能。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。</description>
|
||||||
<baseCost>1200</baseCost>
|
<baseCost>1200</baseCost>
|
||||||
<researchViewX>5.50</researchViewX>
|
<researchViewX>5.50</researchViewX>
|
||||||
<researchViewY>2.10</researchViewY>
|
<researchViewY>2.10</researchViewY>
|
||||||
@@ -660,6 +660,30 @@
|
|||||||
<li>ARA_Technology_2WMT</li>
|
<li>ARA_Technology_2WMT</li>
|
||||||
</prerequisites>
|
</prerequisites>
|
||||||
</ResearchProjectDef>
|
</ResearchProjectDef>
|
||||||
|
<ResearchProjectDef ParentName="ARA_techBase_Needtechprint">
|
||||||
|
<defName>ARA_Technology_3CON</defName>
|
||||||
|
<label>节点CON-3"建造者"</label>
|
||||||
|
<description>允许盾头种进行定向进化,抛弃其防御能力以换取更强大的甲壳素产出能力和建造建筑的能力。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。</description>
|
||||||
|
<baseCost>300</baseCost>
|
||||||
|
<researchViewX>2.00</researchViewX>
|
||||||
|
<researchViewY>2.70</researchViewY>
|
||||||
|
<requiredResearchBuilding>ARA_ResearchBench</requiredResearchBuilding>
|
||||||
|
<prerequisites>
|
||||||
|
<li>ARA_Base_Technology</li>
|
||||||
|
</prerequisites>
|
||||||
|
</ResearchProjectDef>
|
||||||
|
<ResearchProjectDef ParentName="ARA_techBase_Needtechprint">
|
||||||
|
<defName>ARA_Technology_8FEL</defName>
|
||||||
|
<label>节点FEL-8"爆燃腔"</label>
|
||||||
|
<description>允许蜜罐种进行定向进化,抛弃生产虫蜜的能力,以获得防御力增强、生产化合燃料和喷射火焰的能力。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。</description>
|
||||||
|
<baseCost>300</baseCost>
|
||||||
|
<researchViewX>2.00</researchViewX>
|
||||||
|
<researchViewY>2.10</researchViewY>
|
||||||
|
<requiredResearchBuilding>ARA_ResearchBench</requiredResearchBuilding>
|
||||||
|
<prerequisites>
|
||||||
|
<li>ARA_Base_Technology</li>
|
||||||
|
</prerequisites>
|
||||||
|
</ResearchProjectDef>
|
||||||
<!-- 改造发展 -->
|
<!-- 改造发展 -->
|
||||||
<ResearchProjectDef ParentName="ARA_techBase">
|
<ResearchProjectDef ParentName="ARA_techBase">
|
||||||
<defName>ARA_Technology_1EVO</defName>
|
<defName>ARA_Technology_1EVO</defName>
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
<alienRace>
|
<alienRace>
|
||||||
<!-- 核心设置 -->
|
<!-- 核心设置 -->
|
||||||
<generalSettings>
|
<generalSettings>
|
||||||
|
<additionalTraits>2~3</additionalTraits>
|
||||||
<!-- 男性生成几率 -->
|
<!-- 男性生成几率 -->
|
||||||
<maleGenderProbability>0</maleGenderProbability>
|
<maleGenderProbability>0</maleGenderProbability>
|
||||||
<!-- 无视年龄疾病 -->
|
<!-- 无视年龄疾病 -->
|
||||||
@@ -403,15 +404,10 @@
|
|||||||
<blackTraitList>
|
<blackTraitList>
|
||||||
<li>BodyPurist</li>
|
<li>BodyPurist</li>
|
||||||
<li>Cannibal</li>
|
<li>Cannibal</li>
|
||||||
<li>CreepyBreathing</li>
|
|
||||||
<li>DislikesWomen</li>
|
<li>DislikesWomen</li>
|
||||||
<li>Gourmand</li>
|
<li>Gourmand</li>
|
||||||
<li>QuickSleeper</li>
|
|
||||||
<li>Wimp</li>
|
<li>Wimp</li>
|
||||||
<li>Beauty</li>
|
|
||||||
<li>DrugDesire</li>
|
<li>DrugDesire</li>
|
||||||
<li>Immunity</li>
|
|
||||||
<li>PsychicSensitivity</li>
|
|
||||||
</blackTraitList>
|
</blackTraitList>
|
||||||
</raceRestriction>
|
</raceRestriction>
|
||||||
<!-- 想法设置 -->
|
<!-- 想法设置 -->
|
||||||
@@ -624,6 +620,8 @@
|
|||||||
</tools>
|
</tools>
|
||||||
|
|
||||||
<recipes Inherit="False">
|
<recipes Inherit="False">
|
||||||
|
<li>ARA_CureBloodRot</li>
|
||||||
|
<li>ARA_CureAcid</li>
|
||||||
<li>RemovePorcupineQuill</li>
|
<li>RemovePorcupineQuill</li>
|
||||||
<li>SurgicalInspection</li>
|
<li>SurgicalInspection</li>
|
||||||
<li>ARA_Surgery_Install_Plasteel</li>
|
<li>ARA_Surgery_Install_Plasteel</li>
|
||||||
@@ -723,7 +721,7 @@
|
|||||||
<!-- 各种零件定义 -->
|
<!-- 各种零件定义 -->
|
||||||
<alienPartGenerator>
|
<alienPartGenerator>
|
||||||
<!-- 额外身体部件 -->
|
<!-- 额外身体部件 -->
|
||||||
<bodyAddons>
|
<!-- <bodyAddons>
|
||||||
<li>
|
<li>
|
||||||
<path>ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_Stomach</path>
|
<path>ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_Stomach</path>
|
||||||
<inFrontOfBody>false</inFrontOfBody>
|
<inFrontOfBody>false</inFrontOfBody>
|
||||||
@@ -736,7 +734,7 @@
|
|||||||
</Apparel>
|
</Apparel>
|
||||||
</conditions>
|
</conditions>
|
||||||
</li>
|
</li>
|
||||||
</bodyAddons>
|
</bodyAddons> -->
|
||||||
</alienPartGenerator>
|
</alienPartGenerator>
|
||||||
</generalSettings>
|
</generalSettings>
|
||||||
<!-- 种族的允许和禁止特化设置 -->
|
<!-- 种族的允许和禁止特化设置 -->
|
||||||
@@ -886,7 +884,7 @@
|
|||||||
</Apparel>
|
</Apparel>
|
||||||
</conditions>
|
</conditions>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<!-- <li>
|
||||||
<path>ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Addons_ShieldBody</path>
|
<path>ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Addons_ShieldBody</path>
|
||||||
<offsets>
|
<offsets>
|
||||||
<south>
|
<south>
|
||||||
@@ -912,7 +910,7 @@
|
|||||||
</hiddenUnderApparelTag>
|
</hiddenUnderApparelTag>
|
||||||
</Apparel>
|
</Apparel>
|
||||||
</conditions>
|
</conditions>
|
||||||
</li>
|
</li> -->
|
||||||
</bodyAddons>
|
</bodyAddons>
|
||||||
</alienPartGenerator>
|
</alienPartGenerator>
|
||||||
</generalSettings>
|
</generalSettings>
|
||||||
@@ -949,8 +947,8 @@
|
|||||||
<!-- <TradePriceImprovement>0.5</TradePriceImprovement> -->
|
<!-- <TradePriceImprovement>0.5</TradePriceImprovement> -->
|
||||||
|
|
||||||
<!-- 自带的甲壳可以防御外部攻击 -->
|
<!-- 自带的甲壳可以防御外部攻击 -->
|
||||||
<ArmorRating_Blunt>0.5</ArmorRating_Blunt>
|
<ArmorRating_Blunt>0.1</ArmorRating_Blunt>
|
||||||
<ArmorRating_Sharp>0.75</ArmorRating_Sharp>
|
<ArmorRating_Sharp>0.25</ArmorRating_Sharp>
|
||||||
<ArmorRating_Heat>0.2</ArmorRating_Heat>
|
<ArmorRating_Heat>0.2</ArmorRating_Heat>
|
||||||
</statBases>
|
</statBases>
|
||||||
|
|
||||||
@@ -1942,6 +1940,7 @@
|
|||||||
<onlyEatRaceRestrictedFood>true</onlyEatRaceRestrictedFood>
|
<onlyEatRaceRestrictedFood>true</onlyEatRaceRestrictedFood>
|
||||||
<!-- 武器列表 -->
|
<!-- 武器列表 -->
|
||||||
<weaponList>
|
<weaponList>
|
||||||
|
<li>ARA_RW_Large_Arc_Gun</li>
|
||||||
<li>ARA_RW_Acid_Mortar</li>
|
<li>ARA_RW_Acid_Mortar</li>
|
||||||
<li>ARA_RW_Basic_SniperCannon_Gun</li>
|
<li>ARA_RW_Basic_SniperCannon_Gun</li>
|
||||||
<li>ARA_RW_Basic_FireSpewer_Gun</li>
|
<li>ARA_RW_Basic_FireSpewer_Gun</li>
|
||||||
|
|||||||
@@ -713,6 +713,8 @@
|
|||||||
|
|
||||||
<recipes Inherit="False">
|
<recipes Inherit="False">
|
||||||
<li>RemovePorcupineQuill</li>
|
<li>RemovePorcupineQuill</li>
|
||||||
|
<li>ARA_CureBloodRot</li>
|
||||||
|
<li>ARA_CureAcid</li>
|
||||||
</recipes>
|
</recipes>
|
||||||
|
|
||||||
<comps>
|
<comps>
|
||||||
|
|||||||
@@ -20,8 +20,9 @@
|
|||||||
<castEdgeShadows>true</castEdgeShadows>
|
<castEdgeShadows>true</castEdgeShadows>
|
||||||
<fillPercent>0.5</fillPercent>
|
<fillPercent>0.5</fillPercent>
|
||||||
<canOverlapZones>false</canOverlapZones>
|
<canOverlapZones>false</canOverlapZones>
|
||||||
|
<uiIconScale>0.5</uiIconScale>
|
||||||
<size>(1,1)</size>
|
<size>(1,1)</size>
|
||||||
<!-- <designationCategory>Misc</designationCategory> -->
|
<designationCategory>ARA_Buildings</designationCategory>
|
||||||
<researchPrerequisites>
|
<researchPrerequisites>
|
||||||
<li>ARA_Technology_2SYM</li>
|
<li>ARA_Technology_2SYM</li>
|
||||||
</researchPrerequisites>
|
</researchPrerequisites>
|
||||||
@@ -111,7 +112,7 @@
|
|||||||
<texPath>ArachnaeSwarm/Building/ARA_Building_SpiderOne_south</texPath>
|
<texPath>ArachnaeSwarm/Building/ARA_Building_SpiderOne_south</texPath>
|
||||||
</graphicData>
|
</graphicData>
|
||||||
<apparel>
|
<apparel>
|
||||||
<tags>
|
<tags Inherit="False">
|
||||||
<li>ARA_PowerArmor</li>
|
<li>ARA_PowerArmor</li>
|
||||||
</tags>
|
</tags>
|
||||||
<bodyPartGroups>
|
<bodyPartGroups>
|
||||||
|
|||||||
@@ -2294,7 +2294,7 @@
|
|||||||
<explosionRadius>1.5</explosionRadius>
|
<explosionRadius>1.5</explosionRadius>
|
||||||
<explosionDamageDef>ARA_Damage_Freeze</explosionDamageDef>
|
<explosionDamageDef>ARA_Damage_Freeze</explosionDamageDef>
|
||||||
<explosionDamage>5</explosionDamage>
|
<explosionDamage>5</explosionDamage>
|
||||||
<explosionSound>Explosion_Stun</explosionSound>
|
<!-- <explosionSound>Explosion_Stun</explosionSound> -->
|
||||||
<chanceToStartFire>0</chanceToStartFire>
|
<chanceToStartFire>0</chanceToStartFire>
|
||||||
</li>
|
</li>
|
||||||
</verbs>
|
</verbs>
|
||||||
|
|||||||
@@ -373,10 +373,10 @@
|
|||||||
<graphicClass>Graphic_Single</graphicClass>
|
<graphicClass>Graphic_Single</graphicClass>
|
||||||
</graphicData>
|
</graphicData>
|
||||||
<statBases>
|
<statBases>
|
||||||
<AccuracyTouch>0.60</AccuracyTouch>
|
<AccuracyTouch>0.4</AccuracyTouch>
|
||||||
<AccuracyShort>0.70</AccuracyShort>
|
<AccuracyShort>0.7</AccuracyShort>
|
||||||
<AccuracyMedium>0.65</AccuracyMedium>
|
<AccuracyMedium>0.86</AccuracyMedium>
|
||||||
<AccuracyLong>0.55</AccuracyLong>
|
<AccuracyLong>0.9</AccuracyLong>
|
||||||
<RangedWeapon_Cooldown>2.2</RangedWeapon_Cooldown>
|
<RangedWeapon_Cooldown>2.2</RangedWeapon_Cooldown>
|
||||||
</statBases>
|
</statBases>
|
||||||
<verbs>
|
<verbs>
|
||||||
|
|||||||
@@ -10,6 +10,10 @@
|
|||||||
<ARA_BindDrone_NoDroneHediff>目标 {0} 不是阿拉克涅的督虫,或不需要链接。</ARA_BindDrone_NoDroneHediff>
|
<ARA_BindDrone_NoDroneHediff>目标 {0} 不是阿拉克涅的督虫,或不需要链接。</ARA_BindDrone_NoDroneHediff>
|
||||||
<ARA_BindDrone_AlreadyBound>目标 {0} 已绑定到 {1}。</ARA_BindDrone_AlreadyBound>
|
<ARA_BindDrone_AlreadyBound>目标 {0} 已绑定到 {1}。</ARA_BindDrone_AlreadyBound>
|
||||||
<ARA_BindDrone_NoMasterHediff>施法者 {0} 不是阿拉克涅的女皇种。</ARA_BindDrone_NoMasterHediff>
|
<ARA_BindDrone_NoMasterHediff>施法者 {0} 不是阿拉克涅的女皇种。</ARA_BindDrone_NoMasterHediff>
|
||||||
|
<!-- 在你的语言文件中添加 -->
|
||||||
|
<ARA_BindDrone_ConversionSuccess>成功将 {0} 转换为我方子个体并绑定到 {1}</ARA_BindDrone_ConversionSuccess>
|
||||||
|
<ARA_BindDrone_ConversionFailure>转换 {0} 成功,但绑定到 {1} 失败</ARA_BindDrone_ConversionFailure>
|
||||||
|
<ARA_BindDrone_NoMasterForConversion>{0} 不是阿拉克涅的女皇种</ARA_BindDrone_NoMasterForConversion>
|
||||||
|
|
||||||
<!-- Possession Ability Keys -->
|
<!-- Possession Ability Keys -->
|
||||||
<ARA_MustBeHumanlike>目标必须是类人生物。</ARA_MustBeHumanlike>
|
<ARA_MustBeHumanlike>目标必须是类人生物。</ARA_MustBeHumanlike>
|
||||||
|
|||||||
29
1.6/1.6/Patches/ARA_SearchAndDestroy.xml
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Patch>
|
||||||
|
<Operation Class="PatchOperationFindMod">
|
||||||
|
<mods>
|
||||||
|
<li>Search and Destroy (Continued)</li>
|
||||||
|
</mods>
|
||||||
|
<match Class="PatchOperationInsert">
|
||||||
|
<xpath>Defs/ThinkTreeDef[defName = "ARA_Humanlike"]/thinkRoot[@Class ="ThinkNode_Priority"]/subNodes/li[@Class="ThinkNode_ConditionalColonist"]</xpath> <!--Priority
|
||||||
|
is important here, hence the insert after this specific subNode-->
|
||||||
|
<value>
|
||||||
|
<!-- Do search and destroy instead of waiting -->
|
||||||
|
<li Class="SearchAndDestroy.ThinkNode_ConditionalSearchAndDestroy">
|
||||||
|
<subNodes>
|
||||||
|
<li Class="ThinkNode_Priority">
|
||||||
|
<subNodes>
|
||||||
|
<!-- <li Class="JobGiver_MoveToStandable"/> -->
|
||||||
|
<li Class="SearchAndDestroy.JobGiver_AIFightEnemiesShortExp">
|
||||||
|
<targetAcquireRadius>200</targetAcquireRadius>
|
||||||
|
<targetKeepRadius>72</targetKeepRadius>
|
||||||
|
</li>
|
||||||
|
<li Class="SearchAndDestroy.JobGiver_GoWithinRangeOfHostile" />
|
||||||
|
</subNodes>
|
||||||
|
</li>
|
||||||
|
</subNodes>
|
||||||
|
</li>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
|
</Operation>
|
||||||
|
</Patch>
|
||||||
10
1.6/1.6/Patches/Patch.xml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Patch>
|
||||||
|
<Operation Class="PatchOperationAdd">
|
||||||
|
<xpath>/Defs/ThingDef[@Name="Human"]/recipes</xpath>
|
||||||
|
<value>
|
||||||
|
<li>ARA_CureAcid</li>
|
||||||
|
<li>ARA_CureBloodRot</li>
|
||||||
|
</value>
|
||||||
|
</Operation>
|
||||||
|
</Patch>
|
||||||
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 71 KiB |
|
After Width: | Height: | Size: 21 KiB |
BIN
Content/Textures/ArachnaeSwarm/UI/Abilities/ARA_FireSpew.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
@@ -2,6 +2,22 @@
|
|||||||
"Version": 1,
|
"Version": 1,
|
||||||
"WorkspaceRootPath": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\",
|
"WorkspaceRootPath": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\",
|
||||||
"Documents": [
|
"Documents": [
|
||||||
|
{
|
||||||
|
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\hediffs\\ara_hivemind\\hediff_hivemindmaster.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
|
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_hivemind\\hediff_hivemindmaster.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\hediffs\\ara_hivemind\\hediff_hiveminddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
|
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_hivemind\\hediff_hiveminddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\hediffs\\ara_hivemind\\compabilityeffect_binddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
|
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_hivemind\\compabilityeffect_binddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\hediffs\\ara_hivemind\\compproperties_abilitybinddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
|
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_hivemind\\compproperties_abilitybinddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\verbs\\verb_shootarc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\verbs\\verb_shootarc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:verbs\\verb_shootarc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:verbs\\verb_shootarc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
@@ -14,21 +30,73 @@
|
|||||||
"DocumentGroups": [
|
"DocumentGroups": [
|
||||||
{
|
{
|
||||||
"DockedWidth": 200,
|
"DockedWidth": 200,
|
||||||
"SelectedChildIndex": 1,
|
"SelectedChildIndex": 2,
|
||||||
"Children": [
|
"Children": [
|
||||||
{
|
{
|
||||||
"$type": "Bookmark",
|
"$type": "Bookmark",
|
||||||
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
|
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 1,
|
||||||
|
"Title": "Hediff_HiveMindDrone.cs",
|
||||||
|
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\Hediff_HiveMindDrone.cs",
|
||||||
|
"RelativeDocumentMoniker": "Hediffs\\ARA_HiveMind\\Hediff_HiveMindDrone.cs",
|
||||||
|
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\Hediff_HiveMindDrone.cs",
|
||||||
|
"RelativeToolTip": "Hediffs\\ARA_HiveMind\\Hediff_HiveMindDrone.cs",
|
||||||
|
"ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
|
"WhenOpened": "2025-10-20T17:26:14.842Z",
|
||||||
|
"EditorCaption": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 0,
|
"DocumentIndex": 0,
|
||||||
|
"Title": "Hediff_HiveMindMaster.cs",
|
||||||
|
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\Hediff_HiveMindMaster.cs",
|
||||||
|
"RelativeDocumentMoniker": "Hediffs\\ARA_HiveMind\\Hediff_HiveMindMaster.cs",
|
||||||
|
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\Hediff_HiveMindMaster.cs",
|
||||||
|
"RelativeToolTip": "Hediffs\\ARA_HiveMind\\Hediff_HiveMindMaster.cs",
|
||||||
|
"ViewState": "AgIAAHwAAAAAAAAAAAAkwJwAAAAQAAAAAAAAAA==",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
|
"WhenOpened": "2025-10-20T17:25:29.183Z",
|
||||||
|
"EditorCaption": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 2,
|
||||||
|
"Title": "CompAbilityEffect_BindDrone.cs",
|
||||||
|
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\CompAbilityEffect_BindDrone.cs",
|
||||||
|
"RelativeDocumentMoniker": "Hediffs\\ARA_HiveMind\\CompAbilityEffect_BindDrone.cs",
|
||||||
|
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\CompAbilityEffect_BindDrone.cs",
|
||||||
|
"RelativeToolTip": "Hediffs\\ARA_HiveMind\\CompAbilityEffect_BindDrone.cs",
|
||||||
|
"ViewState": "AgIAADYAAAAAAAAAAAAAwE8AAAAtAAAAAAAAAA==",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
|
"WhenOpened": "2025-10-20T17:10:14.403Z",
|
||||||
|
"EditorCaption": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 3,
|
||||||
|
"Title": "CompProperties_AbilityBindDrone.cs",
|
||||||
|
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\CompProperties_AbilityBindDrone.cs",
|
||||||
|
"RelativeDocumentMoniker": "Hediffs\\ARA_HiveMind\\CompProperties_AbilityBindDrone.cs",
|
||||||
|
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\CompProperties_AbilityBindDrone.cs",
|
||||||
|
"RelativeToolTip": "Hediffs\\ARA_HiveMind\\CompProperties_AbilityBindDrone.cs",
|
||||||
|
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAA/AAAAAAAAAA==",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
|
"WhenOpened": "2025-10-20T17:10:09.072Z",
|
||||||
|
"EditorCaption": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 4,
|
||||||
"Title": "Verb_ShootArc.cs",
|
"Title": "Verb_ShootArc.cs",
|
||||||
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Verb_ShootArc.cs",
|
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Verb_ShootArc.cs",
|
||||||
"RelativeDocumentMoniker": "Verbs\\Verb_ShootArc.cs",
|
"RelativeDocumentMoniker": "Verbs\\Verb_ShootArc.cs",
|
||||||
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Verb_ShootArc.cs",
|
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Verb_ShootArc.cs",
|
||||||
"RelativeToolTip": "Verbs\\Verb_ShootArc.cs",
|
"RelativeToolTip": "Verbs\\Verb_ShootArc.cs",
|
||||||
"ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
|
"ViewState": "AgIAAAAAAAAAAAAAAADwvw4AAAAAAAAAAAAAAA==",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-10-19T13:10:19.942Z",
|
"WhenOpened": "2025-10-19T13:10:19.942Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
|
|||||||
@@ -15,6 +15,17 @@ namespace ArachnaeSwarm
|
|||||||
|
|
||||||
if (masterPawn != null && dronePawn != null)
|
if (masterPawn != null && dronePawn != null)
|
||||||
{
|
{
|
||||||
|
// 检查目标是否有 ARA_NonPlayer_HiveMindDroneHediff
|
||||||
|
Hediff nonPlayerDroneHediff = dronePawn.health.hediffSet.GetFirstHediffOfDef(HediffDef.Named("ARA_NonPlayer_HiveMindDroneHediff"));
|
||||||
|
|
||||||
|
if (nonPlayerDroneHediff != null)
|
||||||
|
{
|
||||||
|
// 处理非玩家派系的无人机
|
||||||
|
HandleNonPlayerDroneConversion(dronePawn, masterPawn);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 原有的玩家派系无人机绑定逻辑
|
||||||
Hediff_HiveMindMaster masterHediff = masterPawn.health.hediffSet.GetFirstHediffOfDef(HediffDef.Named("ARA_HiveMindMaster")) as Hediff_HiveMindMaster;
|
Hediff_HiveMindMaster masterHediff = masterPawn.health.hediffSet.GetFirstHediffOfDef(HediffDef.Named("ARA_HiveMindMaster")) as Hediff_HiveMindMaster;
|
||||||
if (masterHediff != null)
|
if (masterHediff != null)
|
||||||
{
|
{
|
||||||
@@ -34,6 +45,56 @@ namespace ArachnaeSwarm
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 处理非玩家派系无人机的转换
|
||||||
|
/// </summary>
|
||||||
|
private void HandleNonPlayerDroneConversion(Pawn dronePawn, Pawn masterPawn)
|
||||||
|
{
|
||||||
|
// 1. 改变阵营
|
||||||
|
if (dronePawn.Faction != masterPawn.Faction)
|
||||||
|
{
|
||||||
|
dronePawn.SetFaction(masterPawn.Faction, masterPawn);
|
||||||
|
Log.Message($"Converted {dronePawn.LabelShort} from {dronePawn.Faction?.Name ?? "null"} to {masterPawn.Faction?.Name}");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 移除 ARA_NonPlayer_HiveMindDroneHediff
|
||||||
|
Hediff nonPlayerHediff = dronePawn.health.hediffSet.GetFirstHediffOfDef(HediffDef.Named("ARA_NonPlayer_HiveMindDroneHediff"));
|
||||||
|
if (nonPlayerHediff != null)
|
||||||
|
{
|
||||||
|
dronePawn.health.RemoveHediff(nonPlayerHediff);
|
||||||
|
Log.Message($"Removed ARA_NonPlayer_HiveMindDroneHediff from {dronePawn.LabelShort}");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. 添加 ARA_HiveMindDrone
|
||||||
|
HediffDef hiveMindDroneDef = HediffDef.Named("ARA_HiveMindDrone");
|
||||||
|
if (hiveMindDroneDef != null && !dronePawn.health.hediffSet.HasHediff(hiveMindDroneDef))
|
||||||
|
{
|
||||||
|
dronePawn.health.AddHediff(hiveMindDroneDef);
|
||||||
|
Log.Message($"Added ARA_HiveMindDrone to {dronePawn.LabelShort}");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 4. 尝试绑定到主节点
|
||||||
|
Hediff_HiveMindMaster masterHediff = masterPawn.health.hediffSet.GetFirstHediffOfDef(HediffDef.Named("ARA_HiveMindMaster")) as Hediff_HiveMindMaster;
|
||||||
|
if (masterHediff != null)
|
||||||
|
{
|
||||||
|
if (masterHediff.TryBindDrone(dronePawn))
|
||||||
|
{
|
||||||
|
Messages.Message("ARA_BindDrone_ConversionSuccess".Translate(dronePawn.LabelShort, masterPawn.LabelShort), MessageTypeDefOf.PositiveEvent, historical: false);
|
||||||
|
Log.Message($"Successfully bound converted drone {dronePawn.LabelShort} to master {masterPawn.LabelShort}");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Messages.Message("ARA_BindDrone_ConversionFailure".Translate(dronePawn.LabelShort, masterPawn.LabelShort), MessageTypeDefOf.NegativeEvent, historical: false);
|
||||||
|
Log.Warning($"Failed to bind converted drone {dronePawn.LabelShort} to master {masterPawn.LabelShort}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Messages.Message("ARA_BindDrone_NoMasterForConversion".Translate(masterPawn.LabelShort), MessageTypeDefOf.NegativeEvent, historical: false);
|
||||||
|
Log.Error($"[ArachnaeSwarm] Master {masterPawn.LabelShort} tried to convert a non-player drone but does not have Hediff_HiveMindMaster.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public override bool Valid(LocalTargetInfo target, bool throwMessages = false)
|
public override bool Valid(LocalTargetInfo target, bool throwMessages = false)
|
||||||
{
|
{
|
||||||
if (!base.Valid(target, throwMessages))
|
if (!base.Valid(target, throwMessages))
|
||||||
@@ -64,7 +125,16 @@ namespace ArachnaeSwarm
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Target must have ARA_HiveMindDrone hediff
|
// 检查目标是否有 ARA_NonPlayer_HiveMindDroneHediff(新增条件)
|
||||||
|
Hediff nonPlayerDroneHediff = dronePawn.health.hediffSet.GetFirstHediffOfDef(HediffDef.Named("ARA_NonPlayer_HiveMindDroneHediff"));
|
||||||
|
if (nonPlayerDroneHediff != null)
|
||||||
|
{
|
||||||
|
// 对于非玩家派系无人机,只需要基本检查,不需要绑定状态检查
|
||||||
|
// 所有检查通过
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 原有的玩家派系无人机检查逻辑
|
||||||
Hediff_HiveMindDrone droneHediff = dronePawn.health.hediffSet.GetFirstHediffOfDef(HediffDef.Named("ARA_HiveMindDrone")) as Hediff_HiveMindDrone;
|
Hediff_HiveMindDrone droneHediff = dronePawn.health.hediffSet.GetFirstHediffOfDef(HediffDef.Named("ARA_HiveMindDrone")) as Hediff_HiveMindDrone;
|
||||||
if (droneHediff == null)
|
if (droneHediff == null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -74,6 +74,9 @@ namespace ArachnaeSwarm
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 新增:强制赋予主节点的文化给无人机
|
||||||
|
ForceMasterCultureToDrone(drone);
|
||||||
|
|
||||||
droneHediff.target = this.pawn; // Set the drone's target to this master
|
droneHediff.target = this.pawn; // Set the drone's target to this master
|
||||||
drones.Add(drone);
|
drones.Add(drone);
|
||||||
UpdateSeverity();
|
UpdateSeverity();
|
||||||
@@ -81,6 +84,84 @@ namespace ArachnaeSwarm
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 强制将主节点的文化赋予无人机
|
||||||
|
/// </summary>
|
||||||
|
private void ForceMasterCultureToDrone(Pawn drone)
|
||||||
|
{
|
||||||
|
// 检查是否有意识形态系统(Ideology DLC)
|
||||||
|
if (ModsConfig.IdeologyActive)
|
||||||
|
{
|
||||||
|
// 获取主节点的意识形态
|
||||||
|
Ideo masterIdeo = this.pawn.Ideo;
|
||||||
|
|
||||||
|
if (masterIdeo != null)
|
||||||
|
{
|
||||||
|
// 设置无人机的意识形态为主节点的意识形态
|
||||||
|
if (drone.Ideo != masterIdeo)
|
||||||
|
{
|
||||||
|
drone.ideo.SetIdeo(masterIdeo);
|
||||||
|
Log.Message($"[ArachnaeSwarm] Set drone {drone.LabelShort} ideology to master's ideology: {masterIdeo.name}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Log.Warning($"[ArachnaeSwarm] Master {this.pawn.LabelShort} has no ideology to assign to drone {drone.LabelShort}");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 强制同步文化相关记忆和状态
|
||||||
|
SyncCulturalMemories(drone);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Log.Message($"[ArachnaeSwarm] Ideology DLC not active, skipping cultural assignment for drone {drone.LabelShort}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 同步文化相关记忆和状态
|
||||||
|
/// </summary>
|
||||||
|
private void SyncCulturalMemories(Pawn drone)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// 清除可能存在的文化冲突记忆
|
||||||
|
if (drone.needs?.mood != null)
|
||||||
|
{
|
||||||
|
// 移除与文化转换相关的负面想法
|
||||||
|
var thoughtsToRemove = drone.needs.mood.thoughts.memories.Memories
|
||||||
|
.Where(thought => thought.def.defName.Contains("Cultural") ||
|
||||||
|
thought.def.defName.Contains("Ideo") ||
|
||||||
|
thought.def.defName.Contains("Convert"))
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
foreach (var thought in thoughtsToRemove)
|
||||||
|
{
|
||||||
|
drone.needs.mood.thoughts.memories.RemoveMemory(thought);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (thoughtsToRemove.Count > 0)
|
||||||
|
{
|
||||||
|
Log.Message($"[ArachnaeSwarm] Removed {thoughtsToRemove.Count} cultural conflict thoughts from drone {drone.LabelShort}");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加蜂群文化适应的正面想法
|
||||||
|
ThoughtDef culturalHarmonyThought = DefDatabase<ThoughtDef>.GetNamedSilentFail("ARA_CulturalHarmony");
|
||||||
|
if (culturalHarmonyThought != null)
|
||||||
|
{
|
||||||
|
drone.needs.mood.thoughts.memories.TryGainMemory(culturalHarmonyThought);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 同步服装和文化偏好
|
||||||
|
Log.Message($"[ArachnaeSwarm] Successfully synchronized cultural memories for drone {drone.LabelShort}");
|
||||||
|
}
|
||||||
|
catch (System.Exception ex)
|
||||||
|
{
|
||||||
|
Log.Error($"[ArachnaeSwarm] Error synchronizing cultural memories for drone {drone.LabelShort}: {ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void TryBindAllAvailableDrones()
|
public void TryBindAllAvailableDrones()
|
||||||
{
|
{
|
||||||
if (this.pawn?.Map == null) return;
|
if (this.pawn?.Map == null) return;
|
||||||
@@ -102,6 +183,9 @@ namespace ArachnaeSwarm
|
|||||||
// Check if the drone is unlinked (target is null) and not already in our list
|
// Check if the drone is unlinked (target is null) and not already in our list
|
||||||
if (droneHediff != null && droneHediff.target == null && !drones.Contains(drone))
|
if (droneHediff != null && droneHediff.target == null && !drones.Contains(drone))
|
||||||
{
|
{
|
||||||
|
// 新增:在自动绑定时也强制赋予文化
|
||||||
|
ForceMasterCultureToDrone(drone);
|
||||||
|
|
||||||
droneHediff.target = this.pawn; // Set the drone's target to this master
|
droneHediff.target = this.pawn; // Set the drone's target to this master
|
||||||
drones.Add(drone);
|
drones.Add(drone);
|
||||||
Log.Message($"[ArachnaeSwarm] Master {this.pawn.LabelShort} automatically bound drone {drone.LabelShort}.");
|
Log.Message($"[ArachnaeSwarm] Master {this.pawn.LabelShort} automatically bound drone {drone.LabelShort}.");
|
||||||
|
|||||||
@@ -37,11 +37,24 @@ namespace ArachnaeSwarm
|
|||||||
// 添加:获取总天数
|
// 添加:获取总天数
|
||||||
public float TotalDays => Props.lifetimeDays;
|
public float TotalDays => Props.lifetimeDays;
|
||||||
|
|
||||||
|
// 新增:检查是否为玩家派系
|
||||||
|
public bool IsPlayerFaction
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
Pawn pawn = parent as Pawn;
|
||||||
|
return pawn != null && pawn.Faction == Faction.OfPlayer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 添加:检查是否有关闭系统的 Hediff
|
// 添加:检查是否有关闭系统的 Hediff
|
||||||
public bool HasShutdownHediff
|
public bool HasShutdownHediff
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
// 非玩家派系不检查 Hediff
|
||||||
|
if (!IsPlayerFaction) return false;
|
||||||
|
|
||||||
// 每 300 tick 检查一次,避免性能问题
|
// 每 300 tick 检查一次,避免性能问题
|
||||||
if (hasShutdownHediffCached == null || Find.TickManager.TicksGame > lastHediffCheckTick + 300)
|
if (hasShutdownHediffCached == null || Find.TickManager.TicksGame > lastHediffCheckTick + 300)
|
||||||
{
|
{
|
||||||
@@ -77,6 +90,9 @@ namespace ArachnaeSwarm
|
|||||||
// 新增:当hediff消失时执行的处理
|
// 新增:当hediff消失时执行的处理
|
||||||
private void HandleMissingHediff()
|
private void HandleMissingHediff()
|
||||||
{
|
{
|
||||||
|
// 非玩家派系不处理 Hediff 消失
|
||||||
|
if (!IsPlayerFaction) return;
|
||||||
|
|
||||||
Pawn pawn = parent as Pawn;
|
Pawn pawn = parent as Pawn;
|
||||||
if (pawn == null) return;
|
if (pawn == null) return;
|
||||||
|
|
||||||
@@ -109,6 +125,9 @@ namespace ArachnaeSwarm
|
|||||||
// 新增:获取或创建寿命Hediff
|
// 新增:获取或创建寿命Hediff
|
||||||
private Hediff GetOrCreateLifespanHediff()
|
private Hediff GetOrCreateLifespanHediff()
|
||||||
{
|
{
|
||||||
|
// 非玩家派系不创建 Hediff
|
||||||
|
if (!IsPlayerFaction) return null;
|
||||||
|
|
||||||
Pawn pawn = parent as Pawn;
|
Pawn pawn = parent as Pawn;
|
||||||
if (pawn == null) return null;
|
if (pawn == null) return null;
|
||||||
|
|
||||||
@@ -150,6 +169,9 @@ namespace ArachnaeSwarm
|
|||||||
// 新增:同步组件和Hediff的寿命数据
|
// 新增:同步组件和Hediff的寿命数据
|
||||||
private void SyncLifespanWithHediff()
|
private void SyncLifespanWithHediff()
|
||||||
{
|
{
|
||||||
|
// 非玩家派系不进行同步
|
||||||
|
if (!IsPlayerFaction) return;
|
||||||
|
|
||||||
Pawn pawn = parent as Pawn;
|
Pawn pawn = parent as Pawn;
|
||||||
if (pawn == null) return;
|
if (pawn == null) return;
|
||||||
|
|
||||||
@@ -198,6 +220,9 @@ namespace ArachnaeSwarm
|
|||||||
// 新增:将Comp的数据写入Hediff(用于调试命令)
|
// 新增:将Comp的数据写入Hediff(用于调试命令)
|
||||||
private void WriteCompDataToHediff()
|
private void WriteCompDataToHediff()
|
||||||
{
|
{
|
||||||
|
// 非玩家派系不写入 Hediff
|
||||||
|
if (!IsPlayerFaction) return;
|
||||||
|
|
||||||
Pawn pawn = parent as Pawn;
|
Pawn pawn = parent as Pawn;
|
||||||
if (pawn == null) return;
|
if (pawn == null) return;
|
||||||
|
|
||||||
@@ -223,6 +248,9 @@ namespace ArachnaeSwarm
|
|||||||
// 新增:定期校验Hediff状态
|
// 新增:定期校验Hediff状态
|
||||||
private void ValidateHediffState()
|
private void ValidateHediffState()
|
||||||
{
|
{
|
||||||
|
// 非玩家派系不进行 Hediff 校验
|
||||||
|
if (!IsPlayerFaction) return;
|
||||||
|
|
||||||
Pawn pawn = parent as Pawn;
|
Pawn pawn = parent as Pawn;
|
||||||
if (pawn == null) return;
|
if (pawn == null) return;
|
||||||
|
|
||||||
@@ -259,6 +287,9 @@ namespace ArachnaeSwarm
|
|||||||
// 新增:检查是否需要创建寿命 Hediff
|
// 新增:检查是否需要创建寿命 Hediff
|
||||||
private bool ShouldCreateLifespanHediff()
|
private bool ShouldCreateLifespanHediff()
|
||||||
{
|
{
|
||||||
|
// 非玩家派系不创建 Hediff
|
||||||
|
if (!IsPlayerFaction) return false;
|
||||||
|
|
||||||
// 如果有关闭 Hediff,不应该创建寿命 Hediff
|
// 如果有关闭 Hediff,不应该创建寿命 Hediff
|
||||||
if (HasShutdownHediff)
|
if (HasShutdownHediff)
|
||||||
{
|
{
|
||||||
@@ -290,6 +321,9 @@ namespace ArachnaeSwarm
|
|||||||
lastHediffSyncTick = Find.TickManager.TicksGame;
|
lastHediffSyncTick = Find.TickManager.TicksGame;
|
||||||
lastHediffMissingCheckTick = Find.TickManager.TicksGame;
|
lastHediffMissingCheckTick = Find.TickManager.TicksGame;
|
||||||
|
|
||||||
|
// 只有玩家派系才进行 Hediff 管理
|
||||||
|
if (IsPlayerFaction)
|
||||||
|
{
|
||||||
// 添加:检查是否需要创建寿命 Hediff
|
// 添加:检查是否需要创建寿命 Hediff
|
||||||
if (ShouldCreateLifespanHediff())
|
if (ShouldCreateLifespanHediff())
|
||||||
{
|
{
|
||||||
@@ -304,19 +338,22 @@ namespace ArachnaeSwarm
|
|||||||
Log.Message($"Skipping lifespan hediff creation for {parent.Label} due to shutdown hediff");
|
Log.Message($"Skipping lifespan hediff creation for {parent.Label} due to shutdown hediff");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public override IEnumerable<Gizmo> CompGetGizmosExtra()
|
public override IEnumerable<Gizmo> CompGetGizmosExtra()
|
||||||
{
|
{
|
||||||
|
// 非玩家派系不显示 Gizmo(除非特别配置)
|
||||||
|
if (!IsPlayerFaction && !Props.showGizmoOnNonPlayerControlled)
|
||||||
|
{
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
// 添加:如果有关闭 Hediff,不显示任何 Gizmo
|
// 添加:如果有关闭 Hediff,不显示任何 Gizmo
|
||||||
if (HasShutdownHediff)
|
if (HasShutdownHediff)
|
||||||
{
|
{
|
||||||
yield break;
|
yield break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parent.Faction != Faction.OfPlayer && !Props.showGizmoOnNonPlayerControlled)
|
|
||||||
{
|
|
||||||
yield break;
|
|
||||||
}
|
|
||||||
if (Find.Selector.SingleSelectedThing == parent)
|
if (Find.Selector.SingleSelectedThing == parent)
|
||||||
{
|
{
|
||||||
if (gizmo == null)
|
if (gizmo == null)
|
||||||
@@ -340,6 +377,7 @@ namespace ArachnaeSwarm
|
|||||||
if (pawn != null)
|
if (pawn != null)
|
||||||
{
|
{
|
||||||
string message = $"关闭Hediff状态:\n" +
|
string message = $"关闭Hediff状态:\n" +
|
||||||
|
$"玩家派系: {IsPlayerFaction}\n" +
|
||||||
$"HasShutdownHediff: {HasShutdownHediff}\n" +
|
$"HasShutdownHediff: {HasShutdownHediff}\n" +
|
||||||
$"Shutdown Hediff Def: {Props.immuteHediff?.defName ?? "None"}\n" +
|
$"Shutdown Hediff Def: {Props.immuteHediff?.defName ?? "None"}\n" +
|
||||||
$"实际存在: {(Props.immuteHediff != null ? pawn.health.hediffSet.HasHediff(Props.immuteHediff).ToString() : "N/A")}";
|
$"实际存在: {(Props.immuteHediff != null ? pawn.health.hediffSet.HasHediff(Props.immuteHediff).ToString() : "N/A")}";
|
||||||
@@ -431,6 +469,7 @@ namespace ArachnaeSwarm
|
|||||||
if (hediff != null)
|
if (hediff != null)
|
||||||
{
|
{
|
||||||
string message = $"寿命Hediff信息:\n" +
|
string message = $"寿命Hediff信息:\n" +
|
||||||
|
$"玩家派系: {IsPlayerFaction}\n" +
|
||||||
$"严重程度: {hediff.Severity:P4}\n" +
|
$"严重程度: {hediff.Severity:P4}\n" +
|
||||||
$"剩余ticks: {powerTicksLeft}\n" +
|
$"剩余ticks: {powerTicksLeft}\n" +
|
||||||
$"剩余天数: {DaysLeft:F4}\n" +
|
$"剩余天数: {DaysLeft:F4}\n" +
|
||||||
@@ -444,6 +483,7 @@ namespace ArachnaeSwarm
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
string message = $"未找到寿命hediff\n" +
|
string message = $"未找到寿命hediff\n" +
|
||||||
|
$"玩家派系: {IsPlayerFaction}\n" +
|
||||||
$"关闭Hediff存在: {HasShutdownHediff}";
|
$"关闭Hediff存在: {HasShutdownHediff}";
|
||||||
Messages.Message(message, MessageTypeDefOf.SilentInput);
|
Messages.Message(message, MessageTypeDefOf.SilentInput);
|
||||||
}
|
}
|
||||||
@@ -507,6 +547,9 @@ namespace ArachnaeSwarm
|
|||||||
{
|
{
|
||||||
base.CompTick();
|
base.CompTick();
|
||||||
|
|
||||||
|
// 非玩家派系不进行任何 Tick 逻辑
|
||||||
|
if (!IsPlayerFaction) return;
|
||||||
|
|
||||||
// 添加:如果有关闭 Hediff,停止所有 Tick 逻辑
|
// 添加:如果有关闭 Hediff,停止所有 Tick 逻辑
|
||||||
if (HasShutdownHediff)
|
if (HasShutdownHediff)
|
||||||
{
|
{
|
||||||
@@ -605,6 +648,9 @@ namespace ArachnaeSwarm
|
|||||||
powerTicksLeft = (int)(Props.lifetimeDays * 60000);
|
powerTicksLeft = (int)(Props.lifetimeDays * 60000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 只有玩家派系才进行 Hediff 管理
|
||||||
|
if (IsPlayerFaction)
|
||||||
|
{
|
||||||
// 立即检查hediff是否存在
|
// 立即检查hediff是否存在
|
||||||
ValidateHediffState();
|
ValidateHediffState();
|
||||||
|
|
||||||
@@ -622,6 +668,7 @@ namespace ArachnaeSwarm
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Gizmo 类保持不变
|
// Gizmo 类保持不变
|
||||||
[StaticConstructorOnStartup]
|
[StaticConstructorOnStartup]
|
||||||
|
|||||||