改动一大堆
This commit is contained in:
Binary file not shown.
@@ -545,7 +545,7 @@
|
||||
<AbilityDef>
|
||||
<defName>ARA_Ability_Smokepop</defName>
|
||||
<label>信息素浓雾释放</label>
|
||||
<description>浓雾种将其腹部的大量释放阿拉克涅信息素烟雾,形成一大片足以遮蔽虫族身形的烟雾,并防止敌方使用火焰武器点燃虫族集群。这些信息素会吸引附近的阿拉克涅辅虫破土而出支援虫群,沾染信息素的目标越多(无论敌我),前来支援的虫族就越多。</description>
|
||||
<description>浓雾种使用其腹部释放大量阿拉克涅信息素烟雾,形成一大片可以遮蔽虫族身形和阻燃的烟雾。这些信息素会吸引附近的阿拉克涅辅虫破土而出支援虫群,沾染信息素的目标越多(无论敌我),前来支援的虫族就越多。</description>
|
||||
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Ability_Smokepop</iconPath>
|
||||
<cooldownTicksRange>6000</cooldownTicksRange>
|
||||
<targetRequired>false</targetRequired>
|
||||
@@ -593,7 +593,7 @@
|
||||
<AbilityDef>
|
||||
<defName>ARA_Ability_TrackingCharge</defName>
|
||||
<label>蛮力冲撞</label>
|
||||
<description>阿拉克涅盾头种对目标发起蓄势冲撞,对路径上的一切造成伤害。在冲击中途经的距离越远,伤害越高。</description>
|
||||
<description>对目标发起蓄势冲撞,对路径上的一切造成伤害。在冲击中途经的距离越远,伤害越高。</description>
|
||||
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Ability_TrackingCharge</iconPath> <!-- Placeholder Icon -->
|
||||
<cooldownTicksRange>6000</cooldownTicksRange>
|
||||
<charges>2</charges>
|
||||
@@ -646,4 +646,71 @@
|
||||
<heightFactor>0</heightFactor>
|
||||
</pawnFlyer>
|
||||
</ThingDef>
|
||||
|
||||
<AbilityDef>
|
||||
<defName>ARA_PsychicBrainburn</defName>
|
||||
<label>心灵烧灼</label>
|
||||
<description>以强大的纯净灵能直接冲击目标,烧毁目标的中枢神经系统——这会直接杀死目标。</description>
|
||||
<iconPath>UI/Abilities/Slaughter</iconPath>
|
||||
<cooldownTicksRange>18000</cooldownTicksRange>
|
||||
<aiCanUse>false</aiCanUse>
|
||||
<displayOrder>300</displayOrder>
|
||||
<displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
|
||||
<disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
|
||||
<showPsycastEffects>false</showPsycastEffects>
|
||||
<sendMessageOnCooldownComplete>true</sendMessageOnCooldownComplete>
|
||||
<stunTargetWhileCasting>true</stunTargetWhileCasting>
|
||||
<moteOffsetAmountTowardsTarget>0.5</moteOffsetAmountTowardsTarget>
|
||||
<warmupMote>Mote_HoraxSmallSpellWarmup</warmupMote>
|
||||
<warmupEffecter>HoraxianAbilityCasting</warmupEffecter>
|
||||
<warmupSound>AnomalyAbilityWarmup</warmupSound>
|
||||
<writeCombatLog>true</writeCombatLog>
|
||||
<verbProperties>
|
||||
<verbClass>Verb_CastAbility</verbClass>
|
||||
<warmupTime>6</warmupTime>
|
||||
<range>18</range>
|
||||
<targetParams>
|
||||
<canTargetPawns>true</canTargetPawns>
|
||||
<canTargetBuildings>false</canTargetBuildings>
|
||||
<canTargetSelf>false</canTargetSelf>
|
||||
</targetParams>
|
||||
</verbProperties>
|
||||
<comps>
|
||||
<li Class="ArachnaeSwarm.CompProperties_PsychicBrainburn">
|
||||
<!-- 视觉效果 -->
|
||||
<effecterDef>Skip_Entry</effecterDef>
|
||||
|
||||
<!-- 设为 true 则只能对血肉生物使用。设为 false 则也可以对机械体使用。 -->
|
||||
<requiresFlesh>false</requiresFlesh>
|
||||
</li>
|
||||
</comps>
|
||||
</AbilityDef>
|
||||
<AbilityDef Name="LongJump">
|
||||
<defName>ARA_NeuroSwarm_jump</defName>
|
||||
<label>高空机动</label>
|
||||
<description>增强用于使身体悬浮的力量快速进入较高的高度,然后飞到一处新的地点。</description>
|
||||
<iconPath>UI/Abilities/Longjump</iconPath>
|
||||
<cooldownTicksRange>5000</cooldownTicksRange>
|
||||
<hostile>false</hostile>
|
||||
<casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
|
||||
<charges>1</charges>
|
||||
<cooldownPerCharge>true</cooldownPerCharge>
|
||||
<verbProperties>
|
||||
<verbClass>Verb_CastAbilityJump</verbClass>
|
||||
<label>jump</label>
|
||||
<violent>false</violent>
|
||||
<forceNormalTimeSpeed>false</forceNormalTimeSpeed>
|
||||
<warmupTime>0</warmupTime>
|
||||
<range>50</range>
|
||||
<requireLineOfSight>true</requireLineOfSight>
|
||||
<soundCast>Longjump_Jump</soundCast>
|
||||
<soundLanding>Longjump_Land</soundLanding>
|
||||
<targetParams>
|
||||
<canTargetLocations>true</canTargetLocations>
|
||||
<canTargetPawns>false</canTargetPawns>
|
||||
<canTargetBuildings>false</canTargetBuildings>
|
||||
</targetParams>
|
||||
</verbProperties>
|
||||
<jobDef>CastJump</jobDef>
|
||||
</AbilityDef>
|
||||
</Defs>
|
||||
@@ -1,43 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Defs>
|
||||
|
||||
<AbilityDef>
|
||||
<defName>ARA_PsychicBrainburn</defName>
|
||||
<label>心灵烧灼</label>
|
||||
<description>通过一次强力的心灵冲击,直接摧毁目标生物的意识核心,使其永久失去知觉。</description>
|
||||
<iconPath>UI/Abilities/Slaughter</iconPath>
|
||||
<cooldownTicksRange>5000</cooldownTicksRange>
|
||||
<aiCanUse>false</aiCanUse>
|
||||
<displayOrder>300</displayOrder>
|
||||
<displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
|
||||
<disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
|
||||
<showPsycastEffects>false</showPsycastEffects>
|
||||
<sendMessageOnCooldownComplete>true</sendMessageOnCooldownComplete>
|
||||
<stunTargetWhileCasting>true</stunTargetWhileCasting>
|
||||
<moteOffsetAmountTowardsTarget>0.5</moteOffsetAmountTowardsTarget>
|
||||
<warmupMote>Mote_HoraxSmallSpellWarmup</warmupMote>
|
||||
<warmupEffecter>HoraxianAbilityCasting</warmupEffecter>
|
||||
<warmupSound>AnomalyAbilityWarmup</warmupSound>
|
||||
<writeCombatLog>true</writeCombatLog>
|
||||
<verbProperties>
|
||||
<verbClass>Verb_CastAbility</verbClass>
|
||||
<warmupTime>1.5</warmupTime>
|
||||
<range>25</range>
|
||||
<targetParams>
|
||||
<canTargetPawns>true</canTargetPawns>
|
||||
<canTargetBuildings>false</canTargetBuildings>
|
||||
<canTargetSelf>false</canTargetSelf>
|
||||
</targetParams>
|
||||
</verbProperties>
|
||||
<comps>
|
||||
<li Class="ArachnaeSwarm.CompProperties_PsychicBrainburn">
|
||||
<!-- 视觉效果 -->
|
||||
<effecterDef>Skip_Entry</effecterDef>
|
||||
|
||||
<!-- 设为 true 则只能对血肉生物使用。设为 false 则也可以对机械体使用。 -->
|
||||
<requiresFlesh>false</requiresFlesh>
|
||||
</li>
|
||||
</comps>
|
||||
</AbilityDef>
|
||||
|
||||
</Defs>
|
||||
@@ -6,7 +6,7 @@
|
||||
<defName>ARA_Ability_Morph</defName>
|
||||
<label>织域形态</label>
|
||||
<description>将自己转换为一个坚固的静态建筑形态,或从建筑形态恢复。</description>
|
||||
<iconPath>UI/Commands/EggSpew</iconPath> <!-- TODO: 替换为你的图标路径 -->
|
||||
<iconPath>UI/Commands/EggSpew</iconPath>
|
||||
<cooldownTicksRange>6000</cooldownTicksRange>
|
||||
<hotKey>Misc12</hotKey>
|
||||
<targetRequired>false</targetRequired>
|
||||
@@ -98,7 +98,6 @@
|
||||
<fuelGizmoLabel>虫蜜</fuelGizmoLabel>
|
||||
<outOfFuelMessage>没有营养</outOfFuelMessage>
|
||||
</li>
|
||||
|
||||
<li Class="CompProperties_AffectedByFacilities">
|
||||
<linkableFacilities>
|
||||
<li>ARA_NutrientNetworkTower</li>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Defs>
|
||||
<!-- 翅膀飞行 -->
|
||||
<AnimationDef>
|
||||
<defName>ARA_FlyEast</defName>
|
||||
<durationTicks>60</durationTicks>
|
||||
@@ -30,7 +31,6 @@
|
||||
</li>
|
||||
</keyframeParts>
|
||||
</AnimationDef>
|
||||
|
||||
<AnimationDef>
|
||||
<defName>ARA_FlyNorth</defName>
|
||||
<durationTicks>60</durationTicks>
|
||||
@@ -61,7 +61,6 @@
|
||||
</li>
|
||||
</keyframeParts>
|
||||
</AnimationDef>
|
||||
|
||||
<AnimationDef>
|
||||
<defName>ARA_FlySouth</defName>
|
||||
<durationTicks>60</durationTicks>
|
||||
@@ -92,4 +91,75 @@
|
||||
</li>
|
||||
</keyframeParts>
|
||||
</AnimationDef>
|
||||
|
||||
<!-- 灵能飞行 -->
|
||||
<AnimationDef>
|
||||
<defName>ARA_Psi_FlyEast</defName>
|
||||
<durationTicks>60</durationTicks>
|
||||
<keyframeParts>
|
||||
<!-- <li>
|
||||
<key>ARA_Flight_Attachment</key>
|
||||
<value>
|
||||
<keyframes>
|
||||
<li><graphicState>ARA_FlyEast_0</graphicState><tick>6</tick></li>
|
||||
<li><graphicState>ARA_FlyEast_1</graphicState><tick>12</tick></li>
|
||||
</keyframes>
|
||||
</value>
|
||||
</li> -->
|
||||
<li>
|
||||
<key>Root</key>
|
||||
<value><workerType>AnimationWorker_Keyframes</workerType><keyframes>
|
||||
<li><tick>0</tick><offset>(0,0,-0.05)</offset></li>
|
||||
<li><tick>30</tick><offset>(0,0,0.05)</offset></li>
|
||||
<li><tick>60</tick><offset>(0,0,-0.05)</offset></li>
|
||||
</keyframes></value>
|
||||
</li>
|
||||
</keyframeParts>
|
||||
</AnimationDef>
|
||||
<AnimationDef>
|
||||
<defName>ARA_Psi_FlyNorth</defName>
|
||||
<durationTicks>60</durationTicks>
|
||||
<keyframeParts>
|
||||
<!-- <li>
|
||||
<key>ARA_Flight_Attachment</key>
|
||||
<value>
|
||||
<keyframes>
|
||||
<li><graphicState>ARA_FlyNorth_0</graphicState><tick>6</tick></li>
|
||||
<li><graphicState>ARA_FlyNorth_1</graphicState><tick>12</tick></li>
|
||||
</keyframes>
|
||||
</value>
|
||||
</li> -->
|
||||
<li>
|
||||
<key>Root</key>
|
||||
<value><workerType>AnimationWorker_Keyframes</workerType><keyframes>
|
||||
<li><tick>0</tick><offset>(0,0,-0.05)</offset></li>
|
||||
<li><tick>30</tick><offset>(0,0,0.05)</offset></li>
|
||||
<li><tick>60</tick><offset>(0,0,-0.05)</offset></li>
|
||||
</keyframes></value>
|
||||
</li>
|
||||
</keyframeParts>
|
||||
</AnimationDef>
|
||||
<AnimationDef>
|
||||
<defName>ARA_Psi_FlySouth</defName>
|
||||
<durationTicks>60</durationTicks>
|
||||
<keyframeParts>
|
||||
<!-- <li>
|
||||
<key>ARA_Flight_Attachment</key>
|
||||
<value>
|
||||
<keyframes>
|
||||
<li><graphicState>ARA_FlySouth_0</graphicState><tick>6</tick></li>
|
||||
<li><graphicState>ARA_FlySouth_1</graphicState><tick>12</tick></li>
|
||||
</keyframes>
|
||||
</value>
|
||||
</li> -->
|
||||
<li>
|
||||
<key>Root</key>
|
||||
<value><workerType>AnimationWorker_Keyframes</workerType><keyframes>
|
||||
<li><tick>0</tick><offset>(0,0,-0.05)</offset></li>
|
||||
<li><tick>30</tick><offset>(0,0,0.05)</offset></li>
|
||||
<li><tick>60</tick><offset>(0,0,-0.05)</offset></li>
|
||||
</keyframes></value>
|
||||
</li>
|
||||
</keyframeParts>
|
||||
</AnimationDef>
|
||||
</Defs>
|
||||
@@ -196,6 +196,4 @@
|
||||
<li Class="HediffCompProperties_DisappearsOnDeath"/>
|
||||
</comps>
|
||||
</HediffDef>
|
||||
|
||||
|
||||
</Defs>
|
||||
@@ -85,6 +85,26 @@
|
||||
<isBad>false</isBad>
|
||||
<scenarioCanAdd>false</scenarioCanAdd>
|
||||
<comps>
|
||||
<li Class="ArachnaeSwarm.HediffCompProperties_GiveHediffsInRangeToRace">
|
||||
<range>6</range>
|
||||
<hediff>ARA_CreepyCrawly_Hediff</hediff>
|
||||
|
||||
<!-- 定义可以被影响的种族列表 -->
|
||||
<targetRaces>
|
||||
<li>Colonist</li>
|
||||
</targetRaces>
|
||||
|
||||
<!-- 其他参数和原版一样 -->
|
||||
<targetingParameters>
|
||||
<canTargetBuildings>false</canTargetBuildings>
|
||||
<canTargetAnimals>false</canTargetAnimals>
|
||||
<canTargetMechs>false</canTargetMechs>
|
||||
<canTargetSelf>false</canTargetSelf>
|
||||
<onlyTargetColonists>true</onlyTargetColonists>
|
||||
</targetingParameters>
|
||||
<onlyPawnsInSameFaction>false</onlyPawnsInSameFaction>
|
||||
<hideMoteWhenNotDrafted>true</hideMoteWhenNotDrafted>
|
||||
</li>
|
||||
</comps>
|
||||
<stages>
|
||||
<li>
|
||||
@@ -98,29 +118,116 @@
|
||||
</HediffDef>
|
||||
|
||||
<HediffDef>
|
||||
<defName>ARA_CreepyCrawly_Hediff</defName>
|
||||
<label>原始恐惧</label>
|
||||
<description>受不了了,快把这些虫子从我身边支开!</description>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<defaultLabelColor>(0.52, 1, 0.95)</defaultLabelColor>
|
||||
<defName>ARA_TemperatureRegulation</defName>
|
||||
<label>冷血动物</label>
|
||||
<description>阿拉克涅虫族是冷血动物,这代表着她们对外界的温度变化更加敏感——在适宜温度下她们将变得敏捷而致命,在不适温度下她们将难以行动。\n\n此类阿拉克涅虫族可以接受在16~26°C的温度下活动,温度接近21°C时会获得额外的意识加成。</description>
|
||||
<hediffClass>Hediff_High</hediffClass>
|
||||
<defaultLabelColor>(0.6, 0.8, 0.9)</defaultLabelColor>
|
||||
<maxSeverity>1.0</maxSeverity>
|
||||
<minSeverity>-0.01</minSeverity>
|
||||
<initialSeverity>0.5</initialSeverity>
|
||||
<comps>
|
||||
<li Class="HediffCompProperties_Disappears">
|
||||
<disappearsAfterTicks>30</disappearsAfterTicks>
|
||||
<showRemainingTime>false</showRemainingTime>
|
||||
<li Class="ArachnaeSwarm.HediffCompProperties_Temperature">
|
||||
<minComfortableTemperature>16</minComfortableTemperature>
|
||||
<maxComfortableTemperature>26</maxComfortableTemperature>
|
||||
<severityChangeIn>0.01</severityChangeIn>
|
||||
<severityChangeOut>-0.01</severityChangeOut>
|
||||
</li>
|
||||
<li Class="HediffCompProperties_DisappearsOnDeath"/>
|
||||
<li Class="HediffCompProperties_Link">
|
||||
<requireLinkOnOtherPawn>false</requireLinkOnOtherPawn>
|
||||
<li Class="ArachnaeSwarm.HediffCompProperties_GiveHediffsInRangeToRace">
|
||||
<range>6</range>
|
||||
<hediff>ARA_CreepyCrawly_Hediff</hediff>
|
||||
<mote>Mote_ARA_CreepyCrawly_HediffLinkLine</mote>
|
||||
|
||||
<!-- 定义可以被影响的种族列表 -->
|
||||
<!-- <targetRaces>
|
||||
<li>Human</li>
|
||||
</targetRaces> -->
|
||||
|
||||
<!-- 其他参数和原版一样 -->
|
||||
<targetingParameters>
|
||||
<canTargetBuildings>false</canTargetBuildings>
|
||||
<canTargetAnimals>false</canTargetAnimals>
|
||||
<canTargetMechs>false</canTargetMechs>
|
||||
<canTargetSelf>true</canTargetSelf>
|
||||
<onlyTargetColonists>true</onlyTargetColonists>
|
||||
</targetingParameters>
|
||||
<onlyPawnsInSameFaction>false</onlyPawnsInSameFaction>
|
||||
<hideMoteWhenNotDrafted>true</hideMoteWhenNotDrafted>
|
||||
</li>
|
||||
</comps>
|
||||
<stages>
|
||||
<li>
|
||||
<minSeverity>0</minSeverity>
|
||||
<label>不适</label>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Consciousness</capacity>
|
||||
<offset>-0.5</offset>
|
||||
</li>
|
||||
</capMods>
|
||||
</li>
|
||||
<li>
|
||||
<minSeverity>0.4</minSeverity>
|
||||
<label>适应</label>
|
||||
</li>
|
||||
<li>
|
||||
<minSeverity>0.8</minSeverity>
|
||||
<label>舒适</label>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Consciousness</capacity>
|
||||
<offset>0.25</offset>
|
||||
</li>
|
||||
</capMods>
|
||||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
<HediffDef>
|
||||
<defName>ARA_CreepyCrawly_Hediff</defName>
|
||||
<label>原始恐惧</label>
|
||||
<description>快把这些虫子从我身边支开!</description>
|
||||
<defaultLabelColor>(0.52, 1, 0.95)</defaultLabelColor>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<isBad>false</isBad>
|
||||
<debugLabelExtra>other</debugLabelExtra>
|
||||
<initialSeverity>1</initialSeverity> <!-- 初始层数设置为10 -->
|
||||
<maxSeverity>1</maxSeverity> <!-- 最大层数,可以根据需要调整 -->
|
||||
<stages>
|
||||
<li>
|
||||
<minSeverity>0</minSeverity>
|
||||
<becomeVisible>false</becomeVisible>
|
||||
</li>
|
||||
</stages>
|
||||
<isBad>false</isBad>
|
||||
<comps>
|
||||
<li Class="HediffCompProperties_Disappears">
|
||||
<showRemainingTime>false</showRemainingTime>
|
||||
</li>
|
||||
<li Class="HediffCompProperties_DisappearsOnDeath"/>
|
||||
<li Class="HediffCompProperties_Link">
|
||||
<requireLinkOnOtherPawn>false</requireLinkOnOtherPawn>
|
||||
<maxDistance>0</maxDistance>
|
||||
<customMote>Mote_ARA_CreepyCrawly_HediffLinkLine</customMote>
|
||||
</li>
|
||||
</comps>
|
||||
</HediffDef>
|
||||
<ThingDef ParentName="MoteBase">
|
||||
<defName>Mote_ARA_CreepyCrawly_HediffLinkLine</defName>
|
||||
<thingClass>MoteDualAttached</thingClass>
|
||||
<altitudeLayer>MoteLow</altitudeLayer>
|
||||
<mote>
|
||||
<fadeInTime>0.1</fadeInTime>
|
||||
<fadeOutTime>0.1</fadeOutTime>
|
||||
<solidTime>999999</solidTime>
|
||||
<needsMaintenance>True</needsMaintenance>
|
||||
<rotateTowardsTarget>True</rotateTowardsTarget>
|
||||
<scaleToConnectTargets>True</scaleToConnectTargets>
|
||||
</mote>
|
||||
<graphicData>
|
||||
<shaderType>MoteGlow</shaderType>
|
||||
<texPath>Things/Mote/WorkCommandLinkLine</texPath>
|
||||
<color>(0,0,0,0)</color>
|
||||
</graphicData>
|
||||
</ThingDef>
|
||||
|
||||
<HediffDef>
|
||||
<defName>ARA_RaceBaseSwarmProduceSwitchHediff</defName>
|
||||
@@ -131,4 +238,41 @@
|
||||
<defaultLabelColor>(0.6, 0.6, 0.6)</defaultLabelColor>
|
||||
<scenarioCanAdd>false</scenarioCanAdd>
|
||||
</HediffDef>
|
||||
|
||||
<HediffDef ParentName="AddedBodyPartBase">
|
||||
<defName>ARA_Psi_Conductor</defName>
|
||||
<label>灵能导体</label>
|
||||
<description>一只阿拉克涅织域种将这个殖民者的所有灵能抽出来,转化为可以</description>
|
||||
<descriptionHyperlinks>
|
||||
<ThingDef>WULA_Addons_Antenna_Shotgun</ThingDef>
|
||||
<ThingDef>WULA_Addons_Antenna_Shotgun_Turret</ThingDef>
|
||||
<RecipeDef>Install_WULA_Addons_Antenna_Shotgun</RecipeDef>
|
||||
</descriptionHyperlinks>
|
||||
<spawnThingOnRemoved>WULA_Addons_Antenna_Shield</spawnThingOnRemoved>
|
||||
<addedPartProps>
|
||||
<!-- <partEfficiency>1.5</partEfficiency> -->
|
||||
<betterThanNatural>true</betterThanNatural>
|
||||
</addedPartProps>
|
||||
<stages>
|
||||
<li>
|
||||
<statOffsets>
|
||||
<MechBandwidth>-2</MechBandwidth>
|
||||
<MechControlGroups>-1</MechControlGroups>
|
||||
</statOffsets>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Consciousness</capacity>
|
||||
<offset>-0.1</offset>
|
||||
</li>
|
||||
</capMods>
|
||||
</li>
|
||||
</stages>
|
||||
<comps>
|
||||
<li Class="WulaFallenEmpire.HediffCompProperties_TopTurret">
|
||||
<turretDef>WULA_Addons_Antenna_Shotgun_Turret</turretDef>
|
||||
<angleOffset>0</angleOffset>
|
||||
<autoAttack>true</autoAttack>
|
||||
</li>
|
||||
</comps>
|
||||
</HediffDef>
|
||||
</Defs>
|
||||
@@ -1,47 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Defs>
|
||||
<HediffDef>
|
||||
<defName>ARA_TemperatureRegulation</defName>
|
||||
<label>冷血动物</label>
|
||||
<description>阿拉克涅虫族是冷血动物,这代表着她们对外界的温度变化更加敏感——在适宜温度下她们将变得敏捷而致命,在不适温度下她们将难以行动。\n\n此类阿拉克涅虫族可以接受在16~26°C的温度下活动,温度接近21°C时会获得额外的意识加成。</description>
|
||||
<hediffClass>Hediff_High</hediffClass>
|
||||
<defaultLabelColor>(0.6, 0.8, 0.9)</defaultLabelColor>
|
||||
<maxSeverity>1.0</maxSeverity>
|
||||
<minSeverity>-0.01</minSeverity>
|
||||
<initialSeverity>0.5</initialSeverity>
|
||||
<comps>
|
||||
<li Class="ArachnaeSwarm.HediffCompProperties_Temperature">
|
||||
<minComfortableTemperature>16</minComfortableTemperature>
|
||||
<maxComfortableTemperature>26</maxComfortableTemperature>
|
||||
<severityChangeIn>0.01</severityChangeIn>
|
||||
<severityChangeOut>-0.01</severityChangeOut>
|
||||
</li>
|
||||
</comps>
|
||||
<stages>
|
||||
<li>
|
||||
<minSeverity>0</minSeverity>
|
||||
<label>不适</label>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Consciousness</capacity>
|
||||
<offset>-0.5</offset>
|
||||
</li>
|
||||
</capMods>
|
||||
</li>
|
||||
<li>
|
||||
<minSeverity>0.4</minSeverity>
|
||||
<label>适应</label>
|
||||
</li>
|
||||
<li>
|
||||
<minSeverity>0.8</minSeverity>
|
||||
<label>舒适</label>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Consciousness</capacity>
|
||||
<offset>0.25</offset>
|
||||
</li>
|
||||
</capMods>
|
||||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
</Defs>
|
||||
@@ -70,7 +70,7 @@
|
||||
<forceNormalGearQuality>true</forceNormalGearQuality>
|
||||
<initialWillRange>99~99</initialWillRange>
|
||||
<initialResistanceRange>99~99</initialResistanceRange>
|
||||
<maxGenerationAge>0</maxGenerationAge>
|
||||
<maxGenerationAge>0.01</maxGenerationAge>
|
||||
<minGenerationAge>0</minGenerationAge>
|
||||
<canBeScattered>false</canBeScattered>
|
||||
<xenotypeSet>
|
||||
@@ -285,7 +285,9 @@
|
||||
</li>
|
||||
</backstoryFiltersOverride>
|
||||
<abilities>
|
||||
<li>ARA_PsychicBrainburn</li>
|
||||
<li>ARA_Ability_Morph</li>
|
||||
<li>ARA_NeuroSwarm_jump</li>
|
||||
</abilities>
|
||||
<apparelTags>
|
||||
</apparelTags>
|
||||
@@ -300,7 +302,7 @@
|
||||
<forceNoDeathNotification>true</forceNoDeathNotification>
|
||||
<combatPower>75</combatPower>
|
||||
<ecoSystemWeight>0</ecoSystemWeight>
|
||||
<maxGenerationAge>0</maxGenerationAge>
|
||||
<maxGenerationAge>0.01</maxGenerationAge>
|
||||
<minGenerationAge>0</minGenerationAge>
|
||||
<moveSpeedFactorByTerrainTag>
|
||||
<li>
|
||||
|
||||
@@ -34,7 +34,6 @@
|
||||
<baseBodySize>0.5</baseBodySize>
|
||||
<baseHealthScale>1</baseHealthScale>
|
||||
<useMeatFrom>Megaspider</useMeatFrom>
|
||||
<lifeExpectancy>0.1</lifeExpectancy>
|
||||
<trainability>Advanced</trainability>
|
||||
<!-- <hasCorpse>false</hasCorpse> -->
|
||||
<!-- <specialTrainables>
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
<hasGenders>false</hasGenders>
|
||||
<hasCorpse>false</hasCorpse>
|
||||
<foodType>None</foodType>
|
||||
<lifeExpectancy>2500</lifeExpectancy>
|
||||
<bloodDef>Filth_BloodInsect</bloodDef>
|
||||
<disableIgniteVerb>true</disableIgniteVerb>
|
||||
<trainability>None</trainability>
|
||||
@@ -37,6 +36,14 @@
|
||||
</tools>
|
||||
<killedLeavings>
|
||||
</killedLeavings>
|
||||
<comps>
|
||||
<li Class="CompProperties_MechPowerCell">
|
||||
<totalPowerTicks>4400</totalPowerTicks> <!-- 2 hours -->
|
||||
<labelOverride>寿命</labelOverride>
|
||||
<tooltipOverride>这种特殊的阿拉克涅辅虫从出生起就走在死亡的道路上了——它们的寿命就是如此短暂。</tooltipOverride>
|
||||
<showGizmoOnNonPlayerControlled>true</showGizmoOnNonPlayerControlled>
|
||||
</li>
|
||||
</comps>
|
||||
</ThingDef>
|
||||
<ThingDef ParentName="ARA_BaseDroneSwarm">
|
||||
<defName>ArachnaeBase_Race_Acid</defName>
|
||||
@@ -61,14 +68,6 @@
|
||||
<statBases>
|
||||
<MoveSpeed>6</MoveSpeed>
|
||||
</statBases>
|
||||
<comps>
|
||||
<li Class="CompProperties_MechPowerCell">
|
||||
<totalPowerTicks>4400</totalPowerTicks> <!-- 2 hours -->
|
||||
<labelOverride>寿命</labelOverride>
|
||||
<tooltipOverride>这种特殊的阿拉克涅辅虫从出生起就走在死亡的道路上了——它们的寿命就是如此短暂。</tooltipOverride>
|
||||
<showGizmoOnNonPlayerControlled>true</showGizmoOnNonPlayerControlled>
|
||||
</li>
|
||||
</comps>
|
||||
<tools Inherit="False">
|
||||
<li>
|
||||
<label>酸性巨颚</label>
|
||||
@@ -109,14 +108,6 @@
|
||||
<MaxFlightTime>9999</MaxFlightTime>
|
||||
<FlightCooldown>0</FlightCooldown>
|
||||
</statBases>
|
||||
<comps>
|
||||
<li Class="CompProperties_MechPowerCell">
|
||||
<totalPowerTicks>4400</totalPowerTicks> <!-- 2 hours -->
|
||||
<labelOverride>寿命</labelOverride>
|
||||
<tooltipOverride>这种特殊的阿拉克涅辅虫从出生起就走在死亡的道路上了——它们的寿命就是如此短暂。</tooltipOverride>
|
||||
<showGizmoOnNonPlayerControlled>true</showGizmoOnNonPlayerControlled>
|
||||
</li>
|
||||
</comps>
|
||||
<tools Inherit="False">
|
||||
<li>
|
||||
<label>巨颚</label>
|
||||
@@ -130,11 +121,10 @@
|
||||
</li>
|
||||
</tools>
|
||||
</ThingDef>
|
||||
|
||||
<ThingDef ParentName="ARA_BaseDroneSwarm">
|
||||
<defName>ArachnaeBase_Race_Acidling</defName>
|
||||
<label>阿拉克涅酸爆种</label>
|
||||
<description>阿拉克涅辅虫之一,智力低下,一般被作为自杀式无人机打出,靠近敌人后就会引爆酸囊产生危险的酸性雾气。</description>
|
||||
<label>阿拉克涅爆裂种</label>
|
||||
<description>阿拉克涅辅虫之一,智力低下,一般以自杀式袭击的方式伤害敌军,靠近敌人后就会引爆酸囊产生危险的酸性雾气。</description>
|
||||
<race>
|
||||
<thinkTreeConstant>HunterDroneConstant</thinkTreeConstant>
|
||||
<baseBodySize>0.5</baseBodySize>
|
||||
@@ -155,12 +145,6 @@
|
||||
<MoveSpeed>6</MoveSpeed>
|
||||
</statBases>
|
||||
<comps>
|
||||
<li Class="CompProperties_MechPowerCell">
|
||||
<totalPowerTicks>4400</totalPowerTicks> <!-- 2 hours -->
|
||||
<labelOverride>寿命</labelOverride>
|
||||
<tooltipOverride>这种特殊的阿拉克涅辅虫从出生起就走在死亡的道路上了——它们的寿命就是如此短暂。</tooltipOverride>
|
||||
<showGizmoOnNonPlayerControlled>true</showGizmoOnNonPlayerControlled>
|
||||
</li>
|
||||
<li Class="ArachnaeSwarm.CompProperties_HunterExplosion">
|
||||
<explosionRadius>3.9</explosionRadius> <!-- Mapped from smokeRadius -->
|
||||
<explosionDamageType>ARA_AcidBurn</explosionDamageType>
|
||||
@@ -185,6 +169,7 @@
|
||||
</li>
|
||||
</tools>
|
||||
</ThingDef>
|
||||
|
||||
<ToolCapacityDef>
|
||||
<defName>ARA_AcidCut</defName>
|
||||
<label>酸性撕咬</label>
|
||||
@@ -202,7 +187,6 @@
|
||||
<combatLogRulesMiss>Maneuver_Slash_MeleeMiss</combatLogRulesMiss>
|
||||
<combatLogRulesDodge>Maneuver_Slash_MeleeDodge</combatLogRulesDodge>
|
||||
</ManeuverDef>
|
||||
|
||||
<ToolCapacityDef>
|
||||
<defName>ARA_Bite</defName>
|
||||
<label>撕咬</label>
|
||||
|
||||
@@ -536,7 +536,6 @@
|
||||
<baseHealthScale>1.5</baseHealthScale>
|
||||
<!-- 解剖产物 -->
|
||||
<leatherDef>ARA_Carapace</leatherDef>
|
||||
<lifeExpectancy>300</lifeExpectancy>
|
||||
<!-- 身体类型 -->
|
||||
<body>Human</body>
|
||||
<lifeStageWorkSettings MayRequire="Ludeon.RimWorld.Biotech">
|
||||
@@ -631,13 +630,6 @@
|
||||
<addChance>1.0</addChance>
|
||||
<allowDuplicates>false</allowDuplicates>
|
||||
</li>
|
||||
<li Class="CompProperties_CauseHediff_AoE">
|
||||
<hediff>ARA_CreepyCrawly_Hediff</hediff>
|
||||
<range>6</range>
|
||||
<canTargetSelf>false</canTargetSelf>
|
||||
<drawLines>true</drawLines>
|
||||
<ignoreMechs>true</ignoreMechs>
|
||||
</li>
|
||||
<!--<li>
|
||||
<compClass>FacialAnimation.EmotionControllerComp</compClass>
|
||||
</li>
|
||||
@@ -1766,23 +1758,22 @@
|
||||
</recipes>
|
||||
|
||||
<comps>
|
||||
<li Class="CompProperties_CauseHediff_AoE">
|
||||
<hediff>ARA_CreepyCrawly_Hediff</hediff>
|
||||
<range>6</range>
|
||||
<canTargetSelf>false</canTargetSelf>
|
||||
<drawLines>true</drawLines>
|
||||
<ignoreMechs>true</ignoreMechs>
|
||||
</li>
|
||||
<!-- Add our new flight component here -->
|
||||
<li Class="ArachnaeSwarm.CompProperties_PawnFlight"> <!-- 2. 添加我们的飞行组件 -->
|
||||
|
||||
<!-- 飞行触发条件:仅在征召时飞行 -->
|
||||
<flightCondition>Drafted</flightCondition>
|
||||
|
||||
<!-- 链接到我们刚刚创建的 AnimationDef -->
|
||||
<!-- <flyingAnimationNorth>ARA_FlyNorth</flyingAnimationNorth>
|
||||
<flyingAnimationEast>ARA_FlyEast</flyingAnimationEast>
|
||||
<flyingAnimationSouth>ARA_FlySouth</flyingAnimationSouth> -->
|
||||
<flyingAnimationNorth>ARA_Psi_FlyNorth</flyingAnimationNorth>
|
||||
<flyingAnimationEast>ARA_Psi_FlyEast</flyingAnimationEast>
|
||||
<flyingAnimationSouth>ARA_Psi_FlySouth</flyingAnimationSouth>
|
||||
</li>
|
||||
<li Class="ArachnaeSwarm.CompProperties_HediffGiver">
|
||||
<hediffs>
|
||||
<li>ARA_HiveMindDrone</li>
|
||||
</hediffs>
|
||||
<addChance>1.0</addChance>
|
||||
<allowDuplicates>false</allowDuplicates>
|
||||
</li>
|
||||
</comps>
|
||||
</AlienRace.ThingDef_AlienRace>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<thinkTreeConstant>HumanlikeConstant</thinkTreeConstant>
|
||||
<intelligence>Humanlike</intelligence>
|
||||
<makesFootprints>true</makesFootprints>
|
||||
<lifeExpectancy>80</lifeExpectancy>
|
||||
<lifeExpectancy>300</lifeExpectancy>
|
||||
<bloodDef>Filth_Blood</bloodDef>
|
||||
<bloodSmearDef>Filth_BloodSmear</bloodSmearDef>
|
||||
<leatherDef>Leather_Human</leatherDef>
|
||||
@@ -705,13 +705,6 @@
|
||||
<addChance>1.0</addChance>
|
||||
<allowDuplicates>false</allowDuplicates>
|
||||
</li>
|
||||
<li Class="CompProperties_CauseHediff_AoE">
|
||||
<hediff>ARA_CreepyCrawly_Hediff</hediff>
|
||||
<range>6</range>
|
||||
<canTargetSelf>false</canTargetSelf>
|
||||
<drawLines>true</drawLines>
|
||||
<ignoreMechs>true</ignoreMechs>
|
||||
</li>
|
||||
</comps>
|
||||
</AlienRace.ThingDef_AlienRace>
|
||||
</Defs>
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 389 KiB After Width: | Height: | Size: 338 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 389 KiB After Width: | Height: | Size: 338 KiB |
Binary file not shown.
@@ -3,16 +3,8 @@
|
||||
"WorkspaceRootPath": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\",
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\abilities\\ara_abilityswitch\\compabilityeffect_giveswitchhediff.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_abilityswitch\\compabilityeffect_giveswitchhediff.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\abilities\\ara_abilityswitch\\compabilityeffect_removeswitchhediff.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_abilityswitch\\compabilityeffect_removeswitchhediff.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\abilities\\ara_abilityswitch\\weaponswitch.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_abilityswitch\\weaponswitch.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\hediffs\\ara_hediffcomp_topturret\\hediffcomp_topturret.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_hediffcomp_topturret\\hediffcomp_topturret.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
}
|
||||
],
|
||||
"DocumentGroupContainers": [
|
||||
@@ -22,50 +14,24 @@
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": 3,
|
||||
"SelectedChildIndex": 0,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 2,
|
||||
"Title": "WeaponSwitch.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_AbilitySwitch\\WeaponSwitch.cs",
|
||||
"RelativeDocumentMoniker": "Abilities\\ARA_AbilitySwitch\\WeaponSwitch.cs",
|
||||
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_AbilitySwitch\\WeaponSwitch.cs",
|
||||
"RelativeToolTip": "Abilities\\ARA_AbilitySwitch\\WeaponSwitch.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAhAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-09-19T06:39:20.978Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
"Title": "CompAbilityEffect_RemoveSwitchHediff.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_AbilitySwitch\\CompAbilityEffect_RemoveSwitchHediff.cs",
|
||||
"RelativeDocumentMoniker": "Abilities\\ARA_AbilitySwitch\\CompAbilityEffect_RemoveSwitchHediff.cs",
|
||||
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_AbilitySwitch\\CompAbilityEffect_RemoveSwitchHediff.cs",
|
||||
"RelativeToolTip": "Abilities\\ARA_AbilitySwitch\\CompAbilityEffect_RemoveSwitchHediff.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAMAAAAXAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-09-19T06:39:18.492Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "CompAbilityEffect_GiveSwitchHediff.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_AbilitySwitch\\CompAbilityEffect_GiveSwitchHediff.cs",
|
||||
"RelativeDocumentMoniker": "Abilities\\ARA_AbilitySwitch\\CompAbilityEffect_GiveSwitchHediff.cs",
|
||||
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_AbilitySwitch\\CompAbilityEffect_GiveSwitchHediff.cs",
|
||||
"RelativeToolTip": "Abilities\\ARA_AbilitySwitch\\CompAbilityEffect_GiveSwitchHediff.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAMAAAAXAAAAAAAAAA==",
|
||||
"Title": "HediffComp_TopTurret.cs",
|
||||
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HediffComp_TopTurret\\HediffComp_TopTurret.cs",
|
||||
"RelativeDocumentMoniker": "Hediffs\\ARA_HediffComp_TopTurret\\HediffComp_TopTurret.cs",
|
||||
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HediffComp_TopTurret\\HediffComp_TopTurret.cs",
|
||||
"RelativeToolTip": "Hediffs\\ARA_HediffComp_TopTurret\\HediffComp_TopTurret.cs",
|
||||
"ViewState": "AgIAAIUAAAAAAAAAAAAswAoAAAAFAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-09-19T06:39:09.674Z",
|
||||
"WhenOpened": "2025-09-20T03:55:47.292Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -133,6 +133,7 @@
|
||||
<Compile Include="Hediffs\ARA_ConfigurableMutant\HediffComp_NecroticTransformation.cs" />
|
||||
<Compile Include="Hediffs\ARA_ConfigurableMutant\HediffComp_Symbiosis.cs" />
|
||||
<Compile Include="Hediffs\ARA_ConfigurableMutant\NecroticTransformationUtility.cs" />
|
||||
<Compile Include="Hediffs\ARA_HediffComp_TopTurret\HediffComp_TopTurret.cs" />
|
||||
<Compile Include="Hediffs\ARA_HiveMind\CompAbilityEffect_BindDrone.cs" />
|
||||
<Compile Include="Hediffs\ARA_HiveMind\CompProperties_AbilityBindDrone.cs" />
|
||||
<Compile Include="Hediffs\ARA_HiveMind\Hediff_HiveMindDrone.cs" />
|
||||
|
||||
@@ -0,0 +1,268 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using Verse;
|
||||
using Verse.AI;
|
||||
using RimWorld;
|
||||
|
||||
namespace ArachnaeSwarm
|
||||
{
|
||||
public class HediffCompProperties_TopTurret : HediffCompProperties
|
||||
{
|
||||
public HediffCompProperties_TopTurret()
|
||||
{
|
||||
this.compClass = typeof(HediffComp_TopTurret);
|
||||
}
|
||||
|
||||
public ThingDef turretDef;
|
||||
|
||||
public float angleOffset;
|
||||
|
||||
public bool autoAttack = true;
|
||||
}
|
||||
|
||||
[StaticConstructorOnStartup]
|
||||
public class HediffComp_TopTurret : HediffComp, IAttackTargetSearcher
|
||||
{
|
||||
public Thing Thing
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.Pawn;
|
||||
}
|
||||
}
|
||||
|
||||
private HediffCompProperties_TopTurret Props
|
||||
{
|
||||
get
|
||||
{
|
||||
return (HediffCompProperties_TopTurret)this.props;
|
||||
}
|
||||
}
|
||||
|
||||
public Verb CurrentEffectiveVerb
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.AttackVerb;
|
||||
}
|
||||
}
|
||||
|
||||
public LocalTargetInfo LastAttackedTarget
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.lastAttackedTarget;
|
||||
}
|
||||
}
|
||||
|
||||
public int LastAttackTargetTick
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.lastAttackTargetTick;
|
||||
}
|
||||
}
|
||||
|
||||
public CompEquippable GunCompEq
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.gun.TryGetComp<CompEquippable>();
|
||||
}
|
||||
}
|
||||
|
||||
public Verb AttackVerb
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.GunCompEq.PrimaryVerb;
|
||||
}
|
||||
}
|
||||
|
||||
private bool WarmingUp
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.burstWarmupTicksLeft > 0;
|
||||
}
|
||||
}
|
||||
|
||||
private bool CanShoot
|
||||
{
|
||||
get
|
||||
{
|
||||
Pawn pawn;
|
||||
if ((pawn = (this.Pawn)) != null)
|
||||
{
|
||||
if (!pawn.Spawned || pawn.Downed || pawn.Dead || !pawn.Awake())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (pawn.stances.stunner.Stunned)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (this.TurretDestroyed)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (pawn.IsColonyMechPlayerControlled && !this.fireAtWill)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
CompCanBeDormant compCanBeDormant = this.Pawn.TryGetComp<CompCanBeDormant>();
|
||||
return compCanBeDormant == null || compCanBeDormant.Awake;
|
||||
}
|
||||
}
|
||||
|
||||
public bool TurretDestroyed
|
||||
{
|
||||
get
|
||||
{
|
||||
Pawn pawn;
|
||||
return (pawn = (this.Pawn)) != null && this.AttackVerb.verbProps.linkedBodyPartsGroup != null && this.AttackVerb.verbProps.ensureLinkedBodyPartsGroupAlwaysUsable && PawnCapacityUtility.CalculateNaturalPartsAverageEfficiency(pawn.health.hediffSet, this.AttackVerb.verbProps.linkedBodyPartsGroup) <= 0f;
|
||||
}
|
||||
}
|
||||
|
||||
private Material TurretMat
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.turretMat == null)
|
||||
{
|
||||
this.turretMat = MaterialPool.MatFrom(this.Props.turretDef.graphicData.texPath);
|
||||
}
|
||||
return this.turretMat;
|
||||
}
|
||||
}
|
||||
|
||||
public bool AutoAttack
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.Props.autoAttack;
|
||||
}
|
||||
}
|
||||
|
||||
public override void CompPostMake()
|
||||
{
|
||||
base.CompPostMake();
|
||||
this.MakeGun();
|
||||
}
|
||||
|
||||
private void MakeGun()
|
||||
{
|
||||
this.gun = ThingMaker.MakeThing(this.Props.turretDef, null);
|
||||
this.UpdateGunVerbs();
|
||||
}
|
||||
|
||||
private void UpdateGunVerbs()
|
||||
{
|
||||
List<Verb> allVerbs = this.gun.TryGetComp<CompEquippable>().AllVerbs;
|
||||
for (int i = 0; i < allVerbs.Count; i++)
|
||||
{
|
||||
Verb verb = allVerbs[i];
|
||||
verb.caster = this.Pawn;
|
||||
verb.castCompleteCallback = delegate ()
|
||||
{
|
||||
this.burstCooldownTicksLeft = this.AttackVerb.verbProps.defaultCooldownTime.SecondsToTicks();
|
||||
};
|
||||
}
|
||||
}
|
||||
public override void CompPostTick(ref float severityAdjustment)
|
||||
{
|
||||
base.CompPostTick(ref severityAdjustment);
|
||||
if (!this.CanShoot)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (this.currentTarget.IsValid)
|
||||
{
|
||||
this.curRotation = (this.currentTarget.Cell.ToVector3Shifted() - this.Pawn.DrawPos).AngleFlat() + this.Props.angleOffset;
|
||||
}
|
||||
this.AttackVerb.VerbTick();
|
||||
if (this.AttackVerb.state != VerbState.Bursting)
|
||||
{
|
||||
if (this.WarmingUp)
|
||||
{
|
||||
this.burstWarmupTicksLeft--;
|
||||
if (this.burstWarmupTicksLeft == 0)
|
||||
{
|
||||
this.AttackVerb.TryStartCastOn(this.currentTarget, false, true, false, true);
|
||||
this.lastAttackTargetTick = Find.TickManager.TicksGame;
|
||||
this.lastAttackedTarget = this.currentTarget;
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.burstCooldownTicksLeft > 0)
|
||||
{
|
||||
this.burstCooldownTicksLeft--;
|
||||
}
|
||||
if (this.burstCooldownTicksLeft <= 0 && this.Pawn.IsHashIntervalTick(10))
|
||||
{
|
||||
this.currentTarget = (Thing)AttackTargetFinder.BestShootTargetFromCurrentPosition(this, TargetScanFlags.NeedThreat | TargetScanFlags.NeedAutoTargetable, null, 0f, 9999f);
|
||||
if (this.currentTarget.IsValid)
|
||||
{
|
||||
this.burstWarmupTicksLeft = 1;
|
||||
return;
|
||||
}
|
||||
this.ResetCurrentTarget();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ResetCurrentTarget()
|
||||
{
|
||||
this.currentTarget = LocalTargetInfo.Invalid;
|
||||
this.burstWarmupTicksLeft = 0;
|
||||
}
|
||||
|
||||
public override void CompExposeData()
|
||||
{
|
||||
base.CompExposeData();
|
||||
Scribe_Values.Look<int>(ref this.burstCooldownTicksLeft, "burstCooldownTicksLeft", 0, false);
|
||||
Scribe_Values.Look<int>(ref this.burstWarmupTicksLeft, "burstWarmupTicksLeft", 0, false);
|
||||
Scribe_TargetInfo.Look(ref this.currentTarget, "currentTarget");
|
||||
Scribe_Deep.Look<Thing>(ref this.gun, "gun", Array.Empty<object>());
|
||||
Scribe_Values.Look<bool>(ref this.fireAtWill, "fireAtWill", true, false);
|
||||
if (Scribe.mode == LoadSaveMode.PostLoadInit)
|
||||
{
|
||||
if (this.gun == null)
|
||||
{
|
||||
Log.Error("CompTurrentGun had null gun after loading. Recreating.");
|
||||
this.MakeGun();
|
||||
return;
|
||||
}
|
||||
this.UpdateGunVerbs();
|
||||
}
|
||||
}
|
||||
|
||||
private const int StartShootIntervalTicks = 10;
|
||||
|
||||
private static readonly CachedTexture ToggleTurretIcon = new CachedTexture("UI/Gizmos/ToggleTurret");
|
||||
|
||||
public Thing gun;
|
||||
|
||||
protected int burstCooldownTicksLeft;
|
||||
|
||||
protected int burstWarmupTicksLeft;
|
||||
|
||||
protected LocalTargetInfo currentTarget = LocalTargetInfo.Invalid;
|
||||
|
||||
private bool fireAtWill = true;
|
||||
|
||||
private LocalTargetInfo lastAttackedTarget = LocalTargetInfo.Invalid;
|
||||
|
||||
private int lastAttackTargetTick;
|
||||
|
||||
private float curRotation;
|
||||
|
||||
[Unsaved(false)]
|
||||
public Material turretMat;
|
||||
}
|
||||
}
|
||||
@@ -31,11 +31,22 @@ namespace ArachnaeSwarm
|
||||
IReadOnlyList<Pawn> pawns = ((!Props.onlyPawnsInSameFaction || parent.pawn.Faction == null) ? parent.pawn.Map.mapPawns.AllPawnsSpawned : parent.pawn.Map.mapPawns.SpawnedPawnsInFaction(parent.pawn.Faction));
|
||||
foreach (Pawn pawn in pawns)
|
||||
{
|
||||
// 修改点:检查种族是否在我们的目标列表中,如果列表为空或null则不进行任何操作
|
||||
if ((Props.targetRaces.NullOrEmpty() || !Props.targetRaces.Contains(pawn.def)) || pawn.Dead || pawn.health == null || pawn == parent.pawn || !(pawn.Position.DistanceTo(parent.pawn.Position) <= Props.range) || !Props.targetingParameters.CanTarget(pawn))
|
||||
// 检查种族是否在我们的目标列表中,如果列表为空或null则不进行任何操作
|
||||
if ( pawn.Dead || pawn.health == null || pawn == parent.pawn || !(pawn.Position.DistanceTo(parent.pawn.Position) <= Props.range) || !Props.targetingParameters.CanTarget(pawn))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 如果列表是空的或null,则默认对所有的pawn进行操作
|
||||
if (Props.targetRaces.NullOrEmpty())
|
||||
{
|
||||
}
|
||||
else if (!Props.targetRaces.Contains(pawn.def))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
Hediff hediff = pawn.health.hediffSet.GetFirstHediffOfDef(Props.hediff);
|
||||
if (hediff == null)
|
||||
{
|
||||
|
||||
BIN
非公开资源/Content/1.png
Normal file
BIN
非公开资源/Content/1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.8 MiB |
Binary file not shown.
Reference in New Issue
Block a user