更新更新
@@ -3,18 +3,18 @@
|
||||
<AbilityDef ParentName="AbilityTouchBase">
|
||||
<defName>ARA_BindDrone</defName>
|
||||
<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 -->
|
||||
|
||||
<hotKey>Misc1</hotKey>
|
||||
<jobDef>CastAbilityOnThing</jobDef>
|
||||
<targetRequired>true</targetRequired>
|
||||
<cooldownTicksRange>60</cooldownTicksRange> <!-- 1 second cooldown -->
|
||||
<cooldownTicksRange>600</cooldownTicksRange> <!-- 1 second cooldown -->
|
||||
|
||||
<verbProperties>
|
||||
<verbClass>Verb_CastAbility</verbClass>
|
||||
<warmupTime>0</warmupTime>
|
||||
<range>99</range>
|
||||
<warmupTime>1</warmupTime>
|
||||
<range>30</range>
|
||||
<targetParams>
|
||||
<canTargetPawns>true</canTargetPawns>
|
||||
<canTargetBuildings>false</canTargetBuildings>
|
||||
@@ -863,6 +863,45 @@
|
||||
</comps>
|
||||
</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>
|
||||
<defName>ARA_TerrainHeal_Ability</defName>
|
||||
<label>护士装疗愈</label>
|
||||
@@ -1093,8 +1132,8 @@
|
||||
<warmupStartSound>AcidSpray_Warmup</warmupStartSound>
|
||||
<verbProperties>
|
||||
<verbClass>Verb_CastAbility</verbClass>
|
||||
<range>-1</range>
|
||||
<warmupTime>0.1</warmupTime>
|
||||
<range>24</range>
|
||||
<warmupTime>0</warmupTime>
|
||||
<soundCast>AcidSpray_Resolve</soundCast>
|
||||
<violent>false</violent>
|
||||
<targetable>false</targetable>
|
||||
@@ -1124,6 +1163,7 @@
|
||||
<cooldownTicksRange>1000</cooldownTicksRange>
|
||||
<charges>3</charges>
|
||||
<cooldownPerCharge>true</cooldownPerCharge>
|
||||
<aiCanUse>false</aiCanUse>
|
||||
<hostile>false</hostile>
|
||||
<casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
|
||||
<verbProperties>
|
||||
@@ -1296,7 +1336,7 @@
|
||||
<description>只要一声令下,阿拉克涅虫族随时可以为了虫巢的大业立刻死去</description>
|
||||
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Suicide_Ability</iconPath>
|
||||
<cooldownTicksRange>1</cooldownTicksRange>
|
||||
<aiCanUse>true</aiCanUse>
|
||||
<aiCanUse>false</aiCanUse>
|
||||
<displayOrder>9900</displayOrder>
|
||||
<displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
|
||||
<warmupStartSound>AcidSpray_Warmup</warmupStartSound>
|
||||
|
||||
@@ -31,10 +31,12 @@
|
||||
<li>(0.35, 0.65)</li>
|
||||
<li>(0.5, 0.5)</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>
|
||||
</requiredDamagePercentageCurve>
|
||||
<destroyChance>1.0</destroyChance>
|
||||
<destroyChance>0.25</destroyChance>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<additionalHediffs>
|
||||
|
||||
@@ -81,43 +81,8 @@
|
||||
<kindDef>Combat</kindDef>
|
||||
<commonality>100</commonality>
|
||||
<options>
|
||||
<ARA_Raid_AcidSwarm>20</ARA_Raid_AcidSwarm>
|
||||
<ARA_Raid_Acidling>5</ARA_Raid_Acidling>
|
||||
</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>
|
||||
<ArachnaeBase_Race_Acidcut_Enermy>7</ArachnaeBase_Race_Acidcut_Enermy>
|
||||
<ArachnaeNode_Race_ShieldHead_Enermy>3</ArachnaeNode_Race_ShieldHead_Enermy>
|
||||
</options>
|
||||
</li>
|
||||
</pawnGroupMakers>
|
||||
|
||||
@@ -345,6 +345,35 @@
|
||||
<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_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>
|
||||
<li>
|
||||
<becomeVisible>ture</becomeVisible>
|
||||
@@ -403,11 +432,13 @@
|
||||
<li Class="HediffCompProperties_GiveAbility">
|
||||
<abilityDefs>
|
||||
<li>ARA_Myrmecocystus_Production_Medicine</li>
|
||||
<li>ARA_Myrmecocystus_Production_Fuel</li>
|
||||
</abilityDefs>
|
||||
</li>
|
||||
<li Class="HediffCompProperties_RemoveIfOtherHediff">
|
||||
<hediffs>
|
||||
<li>ARA_Myrmecocystus_Production_Medicine</li>
|
||||
<li>ARA_Myrmecocystus_Production_Fuel</li>
|
||||
</hediffs>
|
||||
</li>
|
||||
</comps>
|
||||
@@ -472,6 +503,35 @@
|
||||
<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_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>
|
||||
<li>
|
||||
<minSeverity>0.01</minSeverity>
|
||||
@@ -490,6 +550,148 @@
|
||||
</li>
|
||||
</comps>
|
||||
</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>
|
||||
@@ -795,9 +997,41 @@
|
||||
<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_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>
|
||||
<li>
|
||||
<minSeverity>0</minSeverity>
|
||||
<statOffsets>
|
||||
<ArmorRating_Blunt>0.4</ArmorRating_Blunt>
|
||||
<ArmorRating_Sharp>0.5</ArmorRating_Sharp>
|
||||
</statOffsets>
|
||||
</li>
|
||||
</stages>
|
||||
<comps>
|
||||
@@ -849,11 +1083,13 @@
|
||||
<li Class="HediffCompProperties_GiveAbility">
|
||||
<abilityDefs>
|
||||
<li>ARA_ShieldHead_Protector</li>
|
||||
<li>ARA_ShieldHead_HiveBuilder</li>
|
||||
</abilityDefs>
|
||||
</li>
|
||||
<li Class="HediffCompProperties_RemoveIfOtherHediff">
|
||||
<hediffs>
|
||||
<li>ARA_ShieldHead_Protector</li>
|
||||
<li>ARA_ShieldHead_HiveBuilder</li>
|
||||
</hediffs>
|
||||
</li>
|
||||
</comps>
|
||||
@@ -925,11 +1161,41 @@
|
||||
<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_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>
|
||||
<li>
|
||||
<minSeverity>0.01</minSeverity>
|
||||
<minSeverity>0</minSeverity>
|
||||
<statOffsets>
|
||||
<MoveSpeed>1</MoveSpeed>
|
||||
<ArmorRating_Blunt>0.4</ArmorRating_Blunt>
|
||||
<ArmorRating_Sharp>0.5</ArmorRating_Sharp>
|
||||
</statOffsets>
|
||||
</li>
|
||||
</stages>
|
||||
@@ -941,6 +1207,116 @@
|
||||
</li>
|
||||
</comps>
|
||||
</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>
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
</categories>
|
||||
</li>
|
||||
</backstoryFilters>
|
||||
<techLevel>Medieval</techLevel>
|
||||
<techLevel>Industrial</techLevel>
|
||||
<arrivalLayerWhitelist>
|
||||
<li>Surface</li>
|
||||
<!-- <li MayRequire="Ludeon.RimWorld.Odyssey">Orbit</li> -->
|
||||
@@ -30,12 +30,12 @@
|
||||
<colorSpectrum>
|
||||
<li>(0.6, 0.5, 0.9)</li>
|
||||
</colorSpectrum>
|
||||
<!-- <arrivalModeWhitelist>
|
||||
<arrivalModeWhitelist>
|
||||
<li>EdgeDrop</li>
|
||||
<li>EdgeDropGroups</li>
|
||||
<li>CenterDrop</li>
|
||||
<!-- <li>CenterDrop</li> -->
|
||||
<li>RandomDrop</li>
|
||||
</arrivalModeWhitelist> -->
|
||||
</arrivalModeWhitelist>
|
||||
<raidCommonalityFromPointsCurve>
|
||||
<points>
|
||||
<li>(300, 0)</li>
|
||||
@@ -47,11 +47,24 @@
|
||||
</raidCommonalityFromPointsCurve>
|
||||
<pawnGroupMakers>
|
||||
<li>
|
||||
<!-- Normal fights, standard mix -->
|
||||
<commonality>100</commonality>
|
||||
<kindDef>Combat</kindDef>
|
||||
<options>
|
||||
<ARA_Raid_Shooter>7</ARA_Raid_Shooter>
|
||||
<ARA_Raid_Assault>3</ARA_Raid_Assault>
|
||||
<ArachnaeNode_Race_Praetorian_Enermy>3</ArachnaeNode_Race_Praetorian_Enermy>
|
||||
</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>
|
||||
</li>
|
||||
<li>
|
||||
@@ -76,7 +89,7 @@
|
||||
</raidLootValueFromPointsCurve>
|
||||
<humanlikeFaction>true</humanlikeFaction>
|
||||
<hidden>true</hidden>
|
||||
<!-- <autoFlee>false</autoFlee> -->
|
||||
<autoFlee>false</autoFlee>
|
||||
<canUseAvoidGrid>false</canUseAvoidGrid>
|
||||
<apparelStuffFilter>
|
||||
<thingDefs>
|
||||
@@ -97,8 +110,8 @@
|
||||
<allowedArrivalTemperatureRange>-2000~2000</allowedArrivalTemperatureRange>
|
||||
<maxConfigurableAtWorldCreation>1</maxConfigurableAtWorldCreation>
|
||||
<configurationListOrderPriority>900</configurationListOrderPriority>
|
||||
<dropPodActive>ActiveDropPodMechanoid</dropPodActive>
|
||||
<dropPodIncoming>DropPodIncomingMechanoidRapid</dropPodIncoming>
|
||||
<dropPodActive>ARA_ActiveDropPod</dropPodActive>
|
||||
<dropPodIncoming>ARA_DropPodIncoming</dropPodIncoming>
|
||||
<disallowedRaidAgeRestrictions>
|
||||
<li MayRequire="Ludeon.RimWorld.Biotech">Children</li>
|
||||
</disallowedRaidAgeRestrictions>
|
||||
|
||||
@@ -473,7 +473,7 @@
|
||||
<HediffDef>
|
||||
<defName>ARA_CryoShock</defName>
|
||||
<label>急速冷却</label>
|
||||
<description>目标正处于急冻状态。这种状态将导致目标身体结构极度脆弱。当此效果加深时,足以摧毁其身体部位的“冷冻”伤害阈值将会显著降低。</description>
|
||||
<description>目标正处于急冻状态。这种状态将导致目标身体结构极度脆弱。当此效果加深时,其身体部位有可能会被冷冻伤害直接摧毁。</description>
|
||||
<defaultLabelColor>(1, 1, 0.8)</defaultLabelColor>
|
||||
<hediffClass>ArachnaeSwarm.HediffCurseFlame</hediffClass>
|
||||
<comps>
|
||||
@@ -493,11 +493,11 @@
|
||||
</injuryProps>
|
||||
<stages>
|
||||
<li>
|
||||
<label>轻微</label>
|
||||
<label>1/8</label>
|
||||
<becomeVisible>true</becomeVisible>
|
||||
</li>
|
||||
<li>
|
||||
<label>轻微</label>
|
||||
<label>2/8</label>
|
||||
<minSeverity>0.2</minSeverity>
|
||||
<statOffsets>
|
||||
<ComfyTemperatureMin>40</ComfyTemperatureMin>
|
||||
@@ -513,7 +513,7 @@
|
||||
</capMods>
|
||||
</li>
|
||||
<li>
|
||||
<label>中等</label>
|
||||
<label>3/8</label>
|
||||
<minSeverity>0.35</minSeverity>
|
||||
<statOffsets>
|
||||
<ComfyTemperatureMin>80</ComfyTemperatureMin>
|
||||
@@ -529,7 +529,7 @@
|
||||
</capMods>
|
||||
</li>
|
||||
<li>
|
||||
<label>严重</label>
|
||||
<label>4/8</label>
|
||||
<minSeverity>0.5</minSeverity>
|
||||
<statOffsets>
|
||||
<ComfyTemperatureMin>120</ComfyTemperatureMin>
|
||||
@@ -545,7 +545,7 @@
|
||||
</capMods>
|
||||
</li>
|
||||
<li>
|
||||
<label>极度</label>
|
||||
<label>5/8</label>
|
||||
<minSeverity>0.65</minSeverity>
|
||||
<statOffsets>
|
||||
<ComfyTemperatureMin>160</ComfyTemperatureMin>
|
||||
@@ -561,7 +561,7 @@
|
||||
</capMods>
|
||||
</li>
|
||||
<li>
|
||||
<label>完全</label>
|
||||
<label>6/8</label>
|
||||
<minSeverity>0.85</minSeverity>
|
||||
<statOffsets>
|
||||
<ComfyTemperatureMin>200</ComfyTemperatureMin>
|
||||
@@ -576,6 +576,38 @@
|
||||
</li>
|
||||
</capMods>
|
||||
</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>
|
||||
</HediffDef>
|
||||
</Defs>
|
||||
@@ -163,6 +163,17 @@
|
||||
<li>
|
||||
<naturalHealingFactor>0</naturalHealingFactor>
|
||||
<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>
|
||||
<MeleeCooldownFactor>1.5</MeleeCooldownFactor>
|
||||
<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" ?>
|
||||
<Defs>
|
||||
<!-- 基础袭击者类型 -->
|
||||
<PawnKindDef Name="ARA_RaidBase" Abstract="True">
|
||||
<combatPower>150</combatPower>
|
||||
<PawnKindDef ParentName="ArachnaeNode_Race_Fighter">
|
||||
<defName>ArachnaeNode_Race_Fighter_Enermy</defName>
|
||||
<isFighter>true</isFighter>
|
||||
<trader>false</trader>
|
||||
<chemicalAddictionChance>0</chemicalAddictionChance>
|
||||
<apparelIgnoreSeasons>true</apparelIgnoreSeasons>
|
||||
<forceNormalGearQuality>true</forceNormalGearQuality>
|
||||
<initialWillRange>99~99</initialWillRange>
|
||||
<initialResistanceRange>99~99</initialResistanceRange>
|
||||
<overrideDeathOnDownedChance>1</overrideDeathOnDownedChance>
|
||||
<forceDeathOnDowned>true</forceDeathOnDowned>
|
||||
<maxGenerationAge>2</maxGenerationAge>
|
||||
<minGenerationAge>1</minGenerationAge>
|
||||
<canBeScattered>false</canBeScattered>
|
||||
<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>
|
||||
<li>ARA_Armed_Organ_Melee</li>
|
||||
<li>ARA_Armed_Organ_T1</li>
|
||||
</weaponTags>
|
||||
<apparelTags>
|
||||
<li>ARA_Inner</li>
|
||||
<li>ARA_Clothes</li>
|
||||
</apparelTags>
|
||||
<apparelMoney>200</apparelMoney>
|
||||
<weaponMoney>50000</weaponMoney>
|
||||
<abilities>
|
||||
<li>ARA_BaseRace_Acid_Launcher</li>
|
||||
</abilities>
|
||||
<apparelMoney>1000</apparelMoney>
|
||||
<weaponMoney>5000</weaponMoney>
|
||||
<combatPower>250</combatPower>
|
||||
</PawnKindDef>
|
||||
<!-- 远程射手单位 -->
|
||||
<PawnKindDef ParentName="ARA_RaidBase">
|
||||
<defName>ARA_Raid_Shooter</defName>
|
||||
<label>阿拉克涅射手</label>
|
||||
<race>ArachnaeNode_Race_Fighter</race>
|
||||
<combatPower>180</combatPower>
|
||||
<PawnKindDef ParentName="ArachnaeNode_Race_ShieldHead">
|
||||
<defName>ArachnaeNode_Race_ShieldHead_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_Small_Ranged_Needle</li>
|
||||
<li>ARA_Armed_Organ_Small_Ranged_Acid</li>
|
||||
<li>ARA_Armed_Organ_T1</li>
|
||||
</weaponTags>
|
||||
<apparelTags>
|
||||
<li>ARA_Inner</li>
|
||||
<li>ARA_Clothes</li>
|
||||
</apparelTags>
|
||||
<apparelMoney>150</apparelMoney>
|
||||
<weaponMoney>50000</weaponMoney>
|
||||
<techHediffsMoney>0</techHediffsMoney>
|
||||
<abilities>
|
||||
<li>ARA_BaseRace_Acid_Launcher</li>
|
||||
</abilities>
|
||||
<apparelMoney>1000</apparelMoney>
|
||||
<weaponMoney>5000</weaponMoney>
|
||||
<combatPower>330</combatPower>
|
||||
</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">
|
||||
<defName>ARA_Raid_AcidSwarm</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>
|
||||
<PawnKindDef ParentName="ArachnaeBase_Race_Acidcut">
|
||||
<defName>ArachnaeBase_Race_Acidcut_Enermy</defName>
|
||||
<combatPower>50</combatPower>
|
||||
<apparelMoney>0</apparelMoney>
|
||||
<weaponMoney>0</weaponMoney>
|
||||
<techHediffsMoney>0</techHediffsMoney>
|
||||
<lifeStages>
|
||||
<li>
|
||||
<bodyGraphicData>
|
||||
<texPath>ArachnaeSwarm/Things/ARA_Acidling/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="ArachnaeBase_Race_Acidling">
|
||||
<defName>ArachnaeBase_Race_Acidling_Enermy</defName>
|
||||
<combatPower>150</combatPower>
|
||||
<apparelMoney>0</apparelMoney>
|
||||
<weaponMoney>0</weaponMoney>
|
||||
<techHediffsMoney>0</techHediffsMoney>
|
||||
</PawnKindDef>
|
||||
</Defs>
|
||||
|
||||
@@ -217,7 +217,7 @@
|
||||
</apparelTags>
|
||||
<apparelMoney>0</apparelMoney>
|
||||
</PawnKindDef>
|
||||
<PawnKindDef ParentName="ArachnaeNodeABasePawnKind">
|
||||
<PawnKindDef Name="ArachnaeNode_Race_ShieldHead" ParentName="ArachnaeNodeABasePawnKind">
|
||||
<defName>ArachnaeNode_Race_ShieldHead</defName>
|
||||
<label>阿拉克涅盾头种</label>
|
||||
<race>ArachnaeNode_Race_ShieldHead</race>
|
||||
@@ -282,7 +282,7 @@
|
||||
</apparelTags>
|
||||
<apparelMoney>0</apparelMoney>
|
||||
</PawnKindDef>
|
||||
<PawnKindDef ParentName="ArachnaeNodeABasePawnKind">
|
||||
<PawnKindDef Name="ArachnaeNode_Race_Fighter" ParentName="ArachnaeNodeABasePawnKind">
|
||||
<defName>ArachnaeNode_Race_Fighter</defName>
|
||||
<label>阿拉克涅战士种</label>
|
||||
<race>ArachnaeNode_Race_Fighter</race>
|
||||
@@ -390,7 +390,7 @@
|
||||
</apparelTags>
|
||||
<apparelMoney>0</apparelMoney>
|
||||
</PawnKindDef>
|
||||
<PawnKindDef ParentName="ArachnaeNodeABasePawnKind">
|
||||
<PawnKindDef Name="ArachnaeNode_Race_Praetorian" ParentName="ArachnaeNodeABasePawnKind">
|
||||
<defName>ArachnaeNode_Race_Praetorian</defName>
|
||||
<label>阿拉克涅禁卫种</label>
|
||||
<race>ArachnaeNode_Race_Praetorian</race>
|
||||
@@ -520,7 +520,7 @@
|
||||
</li>
|
||||
</lifeStages>
|
||||
</PawnKindDef>
|
||||
<PawnKindDef ParentName="ARA_InsectKindBase">
|
||||
<PawnKindDef Name="ArachnaeBase_Race_Acidcut" ParentName="ARA_InsectKindBase">
|
||||
<defName>ArachnaeBase_Race_Acidcut</defName>
|
||||
<label>阿拉克涅酸噬种</label>
|
||||
<race>ArachnaeBase_Race_Acidcut</race>
|
||||
@@ -541,7 +541,7 @@
|
||||
</li>
|
||||
</lifeStages>
|
||||
</PawnKindDef>
|
||||
<PawnKindDef ParentName="ARA_InsectKindBase">
|
||||
<PawnKindDef Name="ArachnaeBase_Race_Acidling" ParentName="ARA_InsectKindBase">
|
||||
<defName>ArachnaeBase_Race_Acidling</defName>
|
||||
<label>阿拉克涅爆裂种</label>
|
||||
<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">
|
||||
<defName>ARA_Technology_1MED</defName>
|
||||
<label>节点MED-1"疗愈种"</label>
|
||||
<description>允许蜜罐种进行定向进化,以强化其自身的医疗能力并解锁孵化医药茧的技能。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。</description>
|
||||
<description>允许蜜罐种进行定向进化,抛弃生产虫蜜的能力,以强化其自身的医疗能力并解锁孵化医药茧的技能。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。</description>
|
||||
<baseCost>1200</baseCost>
|
||||
<researchViewX>5.50</researchViewX>
|
||||
<researchViewY>2.10</researchViewY>
|
||||
@@ -660,6 +660,30 @@
|
||||
<li>ARA_Technology_2WMT</li>
|
||||
</prerequisites>
|
||||
</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">
|
||||
<defName>ARA_Technology_1EVO</defName>
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
<alienRace>
|
||||
<!-- 核心设置 -->
|
||||
<generalSettings>
|
||||
<additionalTraits>2~3</additionalTraits>
|
||||
<!-- 男性生成几率 -->
|
||||
<maleGenderProbability>0</maleGenderProbability>
|
||||
<!-- 无视年龄疾病 -->
|
||||
@@ -403,15 +404,10 @@
|
||||
<blackTraitList>
|
||||
<li>BodyPurist</li>
|
||||
<li>Cannibal</li>
|
||||
<li>CreepyBreathing</li>
|
||||
<li>DislikesWomen</li>
|
||||
<li>Gourmand</li>
|
||||
<li>QuickSleeper</li>
|
||||
<li>Wimp</li>
|
||||
<li>Beauty</li>
|
||||
<li>DrugDesire</li>
|
||||
<li>Immunity</li>
|
||||
<li>PsychicSensitivity</li>
|
||||
</blackTraitList>
|
||||
</raceRestriction>
|
||||
<!-- 想法设置 -->
|
||||
@@ -624,6 +620,8 @@
|
||||
</tools>
|
||||
|
||||
<recipes Inherit="False">
|
||||
<li>ARA_CureBloodRot</li>
|
||||
<li>ARA_CureAcid</li>
|
||||
<li>RemovePorcupineQuill</li>
|
||||
<li>SurgicalInspection</li>
|
||||
<li>ARA_Surgery_Install_Plasteel</li>
|
||||
@@ -723,7 +721,7 @@
|
||||
<!-- 各种零件定义 -->
|
||||
<alienPartGenerator>
|
||||
<!-- 额外身体部件 -->
|
||||
<bodyAddons>
|
||||
<!-- <bodyAddons>
|
||||
<li>
|
||||
<path>ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_Stomach</path>
|
||||
<inFrontOfBody>false</inFrontOfBody>
|
||||
@@ -736,7 +734,7 @@
|
||||
</Apparel>
|
||||
</conditions>
|
||||
</li>
|
||||
</bodyAddons>
|
||||
</bodyAddons> -->
|
||||
</alienPartGenerator>
|
||||
</generalSettings>
|
||||
<!-- 种族的允许和禁止特化设置 -->
|
||||
@@ -886,7 +884,7 @@
|
||||
</Apparel>
|
||||
</conditions>
|
||||
</li>
|
||||
<li>
|
||||
<!-- <li>
|
||||
<path>ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Addons_ShieldBody</path>
|
||||
<offsets>
|
||||
<south>
|
||||
@@ -912,7 +910,7 @@
|
||||
</hiddenUnderApparelTag>
|
||||
</Apparel>
|
||||
</conditions>
|
||||
</li>
|
||||
</li> -->
|
||||
</bodyAddons>
|
||||
</alienPartGenerator>
|
||||
</generalSettings>
|
||||
@@ -949,8 +947,8 @@
|
||||
<!-- <TradePriceImprovement>0.5</TradePriceImprovement> -->
|
||||
|
||||
<!-- 自带的甲壳可以防御外部攻击 -->
|
||||
<ArmorRating_Blunt>0.5</ArmorRating_Blunt>
|
||||
<ArmorRating_Sharp>0.75</ArmorRating_Sharp>
|
||||
<ArmorRating_Blunt>0.1</ArmorRating_Blunt>
|
||||
<ArmorRating_Sharp>0.25</ArmorRating_Sharp>
|
||||
<ArmorRating_Heat>0.2</ArmorRating_Heat>
|
||||
</statBases>
|
||||
|
||||
@@ -1942,6 +1940,7 @@
|
||||
<onlyEatRaceRestrictedFood>true</onlyEatRaceRestrictedFood>
|
||||
<!-- 武器列表 -->
|
||||
<weaponList>
|
||||
<li>ARA_RW_Large_Arc_Gun</li>
|
||||
<li>ARA_RW_Acid_Mortar</li>
|
||||
<li>ARA_RW_Basic_SniperCannon_Gun</li>
|
||||
<li>ARA_RW_Basic_FireSpewer_Gun</li>
|
||||
|
||||
@@ -713,6 +713,8 @@
|
||||
|
||||
<recipes Inherit="False">
|
||||
<li>RemovePorcupineQuill</li>
|
||||
<li>ARA_CureBloodRot</li>
|
||||
<li>ARA_CureAcid</li>
|
||||
</recipes>
|
||||
|
||||
<comps>
|
||||
|
||||
@@ -20,8 +20,9 @@
|
||||
<castEdgeShadows>true</castEdgeShadows>
|
||||
<fillPercent>0.5</fillPercent>
|
||||
<canOverlapZones>false</canOverlapZones>
|
||||
<uiIconScale>0.5</uiIconScale>
|
||||
<size>(1,1)</size>
|
||||
<!-- <designationCategory>Misc</designationCategory> -->
|
||||
<designationCategory>ARA_Buildings</designationCategory>
|
||||
<researchPrerequisites>
|
||||
<li>ARA_Technology_2SYM</li>
|
||||
</researchPrerequisites>
|
||||
@@ -111,7 +112,7 @@
|
||||
<texPath>ArachnaeSwarm/Building/ARA_Building_SpiderOne_south</texPath>
|
||||
</graphicData>
|
||||
<apparel>
|
||||
<tags>
|
||||
<tags Inherit="False">
|
||||
<li>ARA_PowerArmor</li>
|
||||
</tags>
|
||||
<bodyPartGroups>
|
||||
|
||||
@@ -2294,7 +2294,7 @@
|
||||
<explosionRadius>1.5</explosionRadius>
|
||||
<explosionDamageDef>ARA_Damage_Freeze</explosionDamageDef>
|
||||
<explosionDamage>5</explosionDamage>
|
||||
<explosionSound>Explosion_Stun</explosionSound>
|
||||
<!-- <explosionSound>Explosion_Stun</explosionSound> -->
|
||||
<chanceToStartFire>0</chanceToStartFire>
|
||||
</li>
|
||||
</verbs>
|
||||
|
||||
@@ -373,10 +373,10 @@
|
||||
<graphicClass>Graphic_Single</graphicClass>
|
||||
</graphicData>
|
||||
<statBases>
|
||||
<AccuracyTouch>0.60</AccuracyTouch>
|
||||
<AccuracyShort>0.70</AccuracyShort>
|
||||
<AccuracyMedium>0.65</AccuracyMedium>
|
||||
<AccuracyLong>0.55</AccuracyLong>
|
||||
<AccuracyTouch>0.4</AccuracyTouch>
|
||||
<AccuracyShort>0.7</AccuracyShort>
|
||||
<AccuracyMedium>0.86</AccuracyMedium>
|
||||
<AccuracyLong>0.9</AccuracyLong>
|
||||
<RangedWeapon_Cooldown>2.2</RangedWeapon_Cooldown>
|
||||
</statBases>
|
||||
<verbs>
|
||||
|
||||
@@ -10,6 +10,10 @@
|
||||
<ARA_BindDrone_NoDroneHediff>目标 {0} 不是阿拉克涅的督虫,或不需要链接。</ARA_BindDrone_NoDroneHediff>
|
||||
<ARA_BindDrone_AlreadyBound>目标 {0} 已绑定到 {1}。</ARA_BindDrone_AlreadyBound>
|
||||
<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 -->
|
||||
<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,
|
||||
"WorkspaceRootPath": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\",
|
||||
"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}",
|
||||
"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": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": 1,
|
||||
"SelectedChildIndex": 2,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"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",
|
||||
"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",
|
||||
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Verb_ShootArc.cs",
|
||||
"RelativeDocumentMoniker": "Verbs\\Verb_ShootArc.cs",
|
||||
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Verb_ShootArc.cs",
|
||||
"RelativeToolTip": "Verbs\\Verb_ShootArc.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAADwvw4AAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-10-19T13:10:19.942Z",
|
||||
"EditorCaption": ""
|
||||
|
||||
@@ -15,6 +15,17 @@ namespace ArachnaeSwarm
|
||||
|
||||
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;
|
||||
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)
|
||||
{
|
||||
if (!base.Valid(target, throwMessages))
|
||||
@@ -64,7 +125,16 @@ namespace ArachnaeSwarm
|
||||
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;
|
||||
if (droneHediff == null)
|
||||
{
|
||||
|
||||
@@ -74,6 +74,9 @@ namespace ArachnaeSwarm
|
||||
return false;
|
||||
}
|
||||
|
||||
// 新增:强制赋予主节点的文化给无人机
|
||||
ForceMasterCultureToDrone(drone);
|
||||
|
||||
droneHediff.target = this.pawn; // Set the drone's target to this master
|
||||
drones.Add(drone);
|
||||
UpdateSeverity();
|
||||
@@ -81,6 +84,84 @@ namespace ArachnaeSwarm
|
||||
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()
|
||||
{
|
||||
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
|
||||
if (droneHediff != null && droneHediff.target == null && !drones.Contains(drone))
|
||||
{
|
||||
// 新增:在自动绑定时也强制赋予文化
|
||||
ForceMasterCultureToDrone(drone);
|
||||
|
||||
droneHediff.target = this.pawn; // Set the drone's target to this master
|
||||
drones.Add(drone);
|
||||
Log.Message($"[ArachnaeSwarm] Master {this.pawn.LabelShort} automatically bound drone {drone.LabelShort}.");
|
||||
|
||||
@@ -37,11 +37,24 @@ namespace ArachnaeSwarm
|
||||
// 添加:获取总天数
|
||||
public float TotalDays => Props.lifetimeDays;
|
||||
|
||||
// 新增:检查是否为玩家派系
|
||||
public bool IsPlayerFaction
|
||||
{
|
||||
get
|
||||
{
|
||||
Pawn pawn = parent as Pawn;
|
||||
return pawn != null && pawn.Faction == Faction.OfPlayer;
|
||||
}
|
||||
}
|
||||
|
||||
// 添加:检查是否有关闭系统的 Hediff
|
||||
public bool HasShutdownHediff
|
||||
{
|
||||
get
|
||||
{
|
||||
// 非玩家派系不检查 Hediff
|
||||
if (!IsPlayerFaction) return false;
|
||||
|
||||
// 每 300 tick 检查一次,避免性能问题
|
||||
if (hasShutdownHediffCached == null || Find.TickManager.TicksGame > lastHediffCheckTick + 300)
|
||||
{
|
||||
@@ -77,6 +90,9 @@ namespace ArachnaeSwarm
|
||||
// 新增:当hediff消失时执行的处理
|
||||
private void HandleMissingHediff()
|
||||
{
|
||||
// 非玩家派系不处理 Hediff 消失
|
||||
if (!IsPlayerFaction) return;
|
||||
|
||||
Pawn pawn = parent as Pawn;
|
||||
if (pawn == null) return;
|
||||
|
||||
@@ -109,6 +125,9 @@ namespace ArachnaeSwarm
|
||||
// 新增:获取或创建寿命Hediff
|
||||
private Hediff GetOrCreateLifespanHediff()
|
||||
{
|
||||
// 非玩家派系不创建 Hediff
|
||||
if (!IsPlayerFaction) return null;
|
||||
|
||||
Pawn pawn = parent as Pawn;
|
||||
if (pawn == null) return null;
|
||||
|
||||
@@ -150,6 +169,9 @@ namespace ArachnaeSwarm
|
||||
// 新增:同步组件和Hediff的寿命数据
|
||||
private void SyncLifespanWithHediff()
|
||||
{
|
||||
// 非玩家派系不进行同步
|
||||
if (!IsPlayerFaction) return;
|
||||
|
||||
Pawn pawn = parent as Pawn;
|
||||
if (pawn == null) return;
|
||||
|
||||
@@ -198,6 +220,9 @@ namespace ArachnaeSwarm
|
||||
// 新增:将Comp的数据写入Hediff(用于调试命令)
|
||||
private void WriteCompDataToHediff()
|
||||
{
|
||||
// 非玩家派系不写入 Hediff
|
||||
if (!IsPlayerFaction) return;
|
||||
|
||||
Pawn pawn = parent as Pawn;
|
||||
if (pawn == null) return;
|
||||
|
||||
@@ -223,6 +248,9 @@ namespace ArachnaeSwarm
|
||||
// 新增:定期校验Hediff状态
|
||||
private void ValidateHediffState()
|
||||
{
|
||||
// 非玩家派系不进行 Hediff 校验
|
||||
if (!IsPlayerFaction) return;
|
||||
|
||||
Pawn pawn = parent as Pawn;
|
||||
if (pawn == null) return;
|
||||
|
||||
@@ -259,6 +287,9 @@ namespace ArachnaeSwarm
|
||||
// 新增:检查是否需要创建寿命 Hediff
|
||||
private bool ShouldCreateLifespanHediff()
|
||||
{
|
||||
// 非玩家派系不创建 Hediff
|
||||
if (!IsPlayerFaction) return false;
|
||||
|
||||
// 如果有关闭 Hediff,不应该创建寿命 Hediff
|
||||
if (HasShutdownHediff)
|
||||
{
|
||||
@@ -290,6 +321,9 @@ namespace ArachnaeSwarm
|
||||
lastHediffSyncTick = Find.TickManager.TicksGame;
|
||||
lastHediffMissingCheckTick = Find.TickManager.TicksGame;
|
||||
|
||||
// 只有玩家派系才进行 Hediff 管理
|
||||
if (IsPlayerFaction)
|
||||
{
|
||||
// 添加:检查是否需要创建寿命 Hediff
|
||||
if (ShouldCreateLifespanHediff())
|
||||
{
|
||||
@@ -304,19 +338,22 @@ namespace ArachnaeSwarm
|
||||
Log.Message($"Skipping lifespan hediff creation for {parent.Label} due to shutdown hediff");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override IEnumerable<Gizmo> CompGetGizmosExtra()
|
||||
{
|
||||
// 非玩家派系不显示 Gizmo(除非特别配置)
|
||||
if (!IsPlayerFaction && !Props.showGizmoOnNonPlayerControlled)
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
|
||||
// 添加:如果有关闭 Hediff,不显示任何 Gizmo
|
||||
if (HasShutdownHediff)
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
|
||||
if (parent.Faction != Faction.OfPlayer && !Props.showGizmoOnNonPlayerControlled)
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
if (Find.Selector.SingleSelectedThing == parent)
|
||||
{
|
||||
if (gizmo == null)
|
||||
@@ -340,6 +377,7 @@ namespace ArachnaeSwarm
|
||||
if (pawn != null)
|
||||
{
|
||||
string message = $"关闭Hediff状态:\n" +
|
||||
$"玩家派系: {IsPlayerFaction}\n" +
|
||||
$"HasShutdownHediff: {HasShutdownHediff}\n" +
|
||||
$"Shutdown Hediff Def: {Props.immuteHediff?.defName ?? "None"}\n" +
|
||||
$"实际存在: {(Props.immuteHediff != null ? pawn.health.hediffSet.HasHediff(Props.immuteHediff).ToString() : "N/A")}";
|
||||
@@ -431,6 +469,7 @@ namespace ArachnaeSwarm
|
||||
if (hediff != null)
|
||||
{
|
||||
string message = $"寿命Hediff信息:\n" +
|
||||
$"玩家派系: {IsPlayerFaction}\n" +
|
||||
$"严重程度: {hediff.Severity:P4}\n" +
|
||||
$"剩余ticks: {powerTicksLeft}\n" +
|
||||
$"剩余天数: {DaysLeft:F4}\n" +
|
||||
@@ -444,6 +483,7 @@ namespace ArachnaeSwarm
|
||||
else
|
||||
{
|
||||
string message = $"未找到寿命hediff\n" +
|
||||
$"玩家派系: {IsPlayerFaction}\n" +
|
||||
$"关闭Hediff存在: {HasShutdownHediff}";
|
||||
Messages.Message(message, MessageTypeDefOf.SilentInput);
|
||||
}
|
||||
@@ -507,6 +547,9 @@ namespace ArachnaeSwarm
|
||||
{
|
||||
base.CompTick();
|
||||
|
||||
// 非玩家派系不进行任何 Tick 逻辑
|
||||
if (!IsPlayerFaction) return;
|
||||
|
||||
// 添加:如果有关闭 Hediff,停止所有 Tick 逻辑
|
||||
if (HasShutdownHediff)
|
||||
{
|
||||
@@ -605,6 +648,9 @@ namespace ArachnaeSwarm
|
||||
powerTicksLeft = (int)(Props.lifetimeDays * 60000);
|
||||
}
|
||||
|
||||
// 只有玩家派系才进行 Hediff 管理
|
||||
if (IsPlayerFaction)
|
||||
{
|
||||
// 立即检查hediff是否存在
|
||||
ValidateHediffState();
|
||||
|
||||
@@ -622,6 +668,7 @@ namespace ArachnaeSwarm
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Gizmo 类保持不变
|
||||
[StaticConstructorOnStartup]
|
||||
|
||||