This commit is contained in:
2026-01-23 12:04:23 +08:00
parent 3c9ddc4c60
commit 51ba45982f
34 changed files with 1665 additions and 432 deletions

Binary file not shown.

View File

@@ -1578,10 +1578,36 @@
</li>
</comps>
</AbilityDef>
<AbilityDef>
<defName>ARA_Locust_Needle_Fire</defName>
<label>毒针连射</label>
<description>阿拉克涅督虫使用可以喷射剧毒尾针的毒针腺对敌方进行一轮射击。</description>
<writeCombatLog>True</writeCombatLog>
<showPsycastEffects>False</showPsycastEffects>
<cooldownTicksRange>120</cooldownTicksRange>
<aiCanUse>true</aiCanUse>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Toxic_Needle_Fire</iconPath>
<verbProperties>
<verbClass>Verb_CastAbility</verbClass>
<range>24</range>
<warmupTime>1</warmupTime>
<soundCast>Heatspikes_Shot</soundCast>
<soundCastTail>Heatspikes_Tail</soundCastTail>
<targetParams>
<canTargetPawns>True</canTargetPawns>
</targetParams>
</verbProperties>
<comps>
<li Class="ArachnaeSwarm.CompProperties_AbilityLaunchMultiProjectile">
<projectileDef>Bullet_ARA_RW_Basic_Fist_Needle_Gun</projectileDef>
<numProjectiles>12</numProjectiles>
</li>
</comps>
</AbilityDef>
<!-- 蜕荚 -->
<AbilityDef>
<defName>ARA_Pouch_Hatching_Acidling</defName>
<defName>ARA_Pouch_Hatching_Baneling</defName>
<label>蜕荚孵化:爆裂种</label>
<description>立刻在脚下孵化三只阿拉克涅爆裂种辅虫,它们会对敌方发起自杀性攻击。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_BaseRace_Launcher</iconPath>
@@ -1603,7 +1629,7 @@
</verbProperties>
<comps>
<li Class="ArachnaeSwarm.CompProperties_AbilityLaunchMultiProjectile">
<projectileDef>ArachnaeBase_Race_Acidling_Proj</projectileDef>
<projectileDef>ArachnaeBase_Race_Baneling_Proj</projectileDef>
<numProjectiles>3</numProjectiles>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityNeedCost">

View File

@@ -1260,7 +1260,7 @@
<AbilityDef>
<defName>ARA_Skyraider_Hivelord</defName>
<label>空天种转换——巢虫之主</label>
<description>使空天种发生内驱性进化,以降低机动力和失去高空机动能力为代价,使其获得向敌方自动投射天巢种辅虫的能力——这种辅虫体型很小,会以让人烦扰的近战紧紧黏住敌人。\n\n该进化过程不可逆!</description>
<description>使空天种发生内驱性进化,以降低机动力和失去高空机动能力为代价,使其获得孵化大量天巢种辅虫的能力——这种辅虫体型很小,会以让人烦扰的近战紧紧黏住敌人。\n\n该进化方向提供8只阿拉克涅天巢种辅虫。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Skyraider_Hivelord</iconPath>
<cooldownTicksRange>1800</cooldownTicksRange>
<hostile>false</hostile>
@@ -1299,7 +1299,7 @@
<HediffDef>
<defName>ARA_Skyraider_Hivelord</defName>
<label>亚种-领主种</label>
<description>这只阿拉克涅空天种已经获得拔耀,会对敌方投掷天巢种辅虫,这些灵敏的辅虫会在落地后散开四处狩猎目标。</description>
<description>这只阿拉克涅空天种已经获得拔耀,可以孵化大量的天巢种辅虫,这些灵敏的辅虫会后散开四处狩猎目标。</description>
<hediffClass>HediffWithComps</hediffClass>
<defaultLabelColor>(0.6, 0.4, 0.8)</defaultLabelColor>
<isBad>false</isBad>
@@ -1343,15 +1343,24 @@
</li>
</stages>
<comps>
<li Class="ArachnaeSwarm.HediffCompProperties_TopTurret">
<li Class="ArachnaeSwarm.HediffCompProperties_ProductionQueue">
<productionQueue>
<li>
<pawnKind>ArachnaeBase_Race_Skyhive</pawnKind>
<count>8</count>
<cooldownTicks>400</cooldownTicks>
</li>
</productionQueue>
</li>
<!-- <li Class="ArachnaeSwarm.HediffCompProperties_TopTurret">
<turretDef>ARA_Skyraider_Hivelord_Turret</turretDef>
<angleOffset>0</angleOffset>
<autoAttack>true</autoAttack>
</li>
<li Class="ArachnaeSwarm.HediffCompProperties_DrawMote">
<mote>ARA_Mote_Hivelord_Turret_Range</mote> <!-- 大小和range没有严格对应关系需要自己试出来drawSize -->
<mote>ARA_Mote_Hivelord_Turret_Range</mote>
<hideMoteWhenNotDrafted>true</hideMoteWhenNotDrafted>
</li>
</li> -->
</comps>
</HediffDef>
<ThingDef ParentName="MoteBase">
@@ -1374,7 +1383,7 @@
<AbilityDef>
<defName>ARA_Skyraider_Empthrower</defName>
<label>空天种转换——电磁风暴</label>
<description>使空天种发生内驱性进化,以降低机动力和失去高空机动能力为代价,使其获得向敌方自动投射磁暴种辅虫的能力——这种辅虫会以自杀式袭击的方式释放出EMP以对抗机械族。\n\n该进化过程不可逆!</description>
<description>使空天种发生内驱性进化,以降低机动力和失去高空机动能力为代价,使其获得孵化磁暴种辅虫的能力——这种辅虫会以自杀式袭击的方式释放出EMP以对抗机械族。\n\n该进化方向提供3只阿拉克涅电磁种辅虫。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Skyraider_Empthrower</iconPath>
<cooldownTicksRange>1800</cooldownTicksRange>
<hostile>false</hostile>
@@ -1413,7 +1422,7 @@
<HediffDef>
<defName>ARA_Skyraider_Empthrower</defName>
<label>亚种-飓风种</label>
<description>这只阿拉克涅空天种已经获得拔耀,会对敌方投掷磁暴种辅虫,这些辅虫会在落地后散开,以自杀性袭击释放EMP对抗敌方机械族。</description>
<description>这只阿拉克涅空天种已经获得拔耀,会孵化磁暴种辅虫这些辅虫以自杀性袭击释放EMP对抗敌方机械族。</description>
<hediffClass>HediffWithComps</hediffClass>
<defaultLabelColor>(0.6, 0.4, 0.8)</defaultLabelColor>
<isBad>false</isBad>
@@ -1457,7 +1466,16 @@
</li>
</stages>
<comps>
<li Class="ArachnaeSwarm.HediffCompProperties_TopTurret">
<li Class="ArachnaeSwarm.HediffCompProperties_ProductionQueue">
<productionQueue>
<li>
<pawnKind>ArachnaeBase_Race_Empsuicider</pawnKind>
<count>3</count>
<cooldownTicks>500</cooldownTicks>
</li>
</productionQueue>
</li>
<!-- <li Class="ArachnaeSwarm.HediffCompProperties_TopTurret">
<turretDef>ARA_Skyraider_Empthrower_Turret</turretDef>
<angleOffset>0</angleOffset>
<autoAttack>true</autoAttack>
@@ -1465,7 +1483,7 @@
<li Class="ArachnaeSwarm.HediffCompProperties_DrawMote">
<mote>ARA_Mote_Empthrower_Turret_Range</mote>
<hideMoteWhenNotDrafted>true</hideMoteWhenNotDrafted>
</li>
</li> -->
</comps>
</HediffDef>
<ThingDef ParentName="MoteBase">
@@ -1508,10 +1526,19 @@
</li>
</stages>
<comps>
<li Class="ArachnaeSwarm.HediffCompProperties_TopTurret">
<turretDef>ARA_Praetorian_Base_Turret</turretDef>
<angleOffset>0</angleOffset>
<autoAttack>true</autoAttack>
<li Class="ArachnaeSwarm.HediffCompProperties_ProductionQueue">
<productionQueue>
<li>
<pawnKind>ArachnaeBase_Race_Acidcut</pawnKind>
<count>3</count>
<cooldownTicks>500</cooldownTicks>
</li>
<li>
<pawnKind>ArachnaeBase_Race_Locust</pawnKind>
<count>2</count>
<cooldownTicks>700</cooldownTicks>
</li>
</productionQueue>
</li>
<li Class="HediffCompProperties_GiveAbility">
<abilityDefs>
@@ -1531,7 +1558,7 @@
<AbilityDef>
<defName>ARA_Praetorian_Navigator</defName>
<label>禁卫种转换——引航灯塔</label>
<description>使禁卫种发生内驱性进化,以牺牲射击能力、跳跃能力、指挥能力为代价,使其换取指挥空中兽虫的能力。\n\n该进化过程不可逆!另外,空中兽虫必须成功升空才能进行指挥——在你解锁这个进化路径时,应该还不能建造空中兽虫。</description>
<description>使禁卫种发生内驱性进化,以牺牲射击能力、跳跃能力、指挥能力为代价,使其换取指挥空中兽虫的能力。\n\n该进化方向不提供阿拉克涅辅虫。另外,空中兽虫必须成功升空才能进行指挥——在你解锁这个进化路径时,应该还不能建造空中兽虫。</description>
<iconPath>ArachnaeSwarm/UI/Abilities/ARA_Praetorian_Navigator</iconPath>
<cooldownTicksRange>1800</cooldownTicksRange>
<hostile>false</hostile>

View File

@@ -150,7 +150,7 @@
<li>ArachnaeNode_Race_Skyraider</li>
<li>ArachnaeNode_Race_Praetorian</li>
<li>ArachnaeBase_Race_Acidcut</li>
<li>ArachnaeBase_Race_Acidling</li>
<li>ArachnaeBase_Race_Baneling</li>
<li>ArachnaeBase_Race_Skyhive</li>
<li>ArachnaeNode_Race_MimicNematode</li>
</targetRaces>

View File

@@ -284,8 +284,8 @@
<weaponMoney>0</weaponMoney>
<techHediffsMoney>0</techHediffsMoney>
</PawnKindDef>
<PawnKindDef ParentName="ArachnaeBase_Race_Acidling">
<defName>ArachnaeBase_Race_Acidling_Enermy</defName>
<PawnKindDef ParentName="ArachnaeBase_Race_Baneling">
<defName>ArachnaeBase_Race_Baneling_Enermy</defName>
<combatPower>150</combatPower>
<apparelMoney>0</apparelMoney>
<weaponMoney>0</weaponMoney>

View File

@@ -537,7 +537,7 @@
<lifeStages>
<li>
<bodyGraphicData>
<texPath>ArachnaeSwarm/Things/ARA_Acidling/Bodies/Naked_Thin</texPath>
<texPath>ArachnaeSwarm/Things/ARA_Baneling/Bodies/Naked_Thin</texPath>
<drawSize>1</drawSize>
<shadowData>
<volume>(0.4, 0.5, 0.37)</volume>
@@ -606,15 +606,14 @@
</li>
</lifeStages>
</PawnKindDef>
<PawnKindDef Name="ArachnaeBase_Race_Acidling" ParentName="ARA_InsectKindBase">
<defName>ArachnaeBase_Race_Acidling</defName>
<PawnKindDef Name="ArachnaeBase_Race_Baneling" ParentName="ARA_InsectKindBase">
<defName>ArachnaeBase_Race_Baneling</defName>
<label>阿拉克涅爆裂种</label>
<race>ArachnaeBase_Race_Acidling</race>
<race>ArachnaeBase_Race_Baneling</race>
<lifeStages>
<li>
<bodyGraphicData>
<texPath>ArachnaeSwarm/Things/ARA_Acidling/Bodies/Naked_Thin</texPath>
<texPath>ArachnaeSwarm/Things/ARA_Baneling/Bodies/Naked_Thin</texPath>
<drawSize>1</drawSize>
<shadowData>
<volume>(0.4, 0.5, 0.37)</volume>
@@ -635,7 +634,7 @@
<lifeStages>
<li>
<bodyGraphicData>
<texPath>ArachnaeSwarm/Things/ARA_Acidling/BodiesEmp/Naked_Thin</texPath>
<texPath>ArachnaeSwarm/Things/ARA_Baneling/BodiesEmp/Naked_Thin</texPath>
<drawSize>1</drawSize>
<shadowData>
<volume>(0.4, 0.5, 0.37)</volume>
@@ -649,6 +648,30 @@
</li>
</lifeStages>
</PawnKindDef>
<PawnKindDef ParentName="ARA_InsectKindBase">
<defName>ArachnaeBase_Race_Locust</defName>
<label>阿拉克涅爆裂种</label>
<race>ArachnaeBase_Race_Locust</race>
<lifeStages>
<li>
<bodyGraphicData>
<texPath>ArachnaeSwarm/Things/ARA_Baneling/BodiesEmp/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>
<abilities>
<li>ARA_Locust_Needle_Fire</li>
</abilities>
</PawnKindDef>
<PawnKindDef Name="ArachnaeBeast_Race_Slayer" ParentName="ARA_InsectKindBase">
<defName>ArachnaeBeast_Race_Slayer</defName>

View File

@@ -700,11 +700,11 @@
<!-- 蜕荚 -->
<RecipeDef ParentName="ARA_SurgeryInstallImplantBase">
<defName>ARA_Surgery_Install_Acidling_Pouch</defName>
<defName>ARA_Surgery_Install_Baneling_Pouch</defName>
<label>爆裂种蜕荚</label>
<description>诱发阿拉克涅虫族的定向变异,使其蜕荚中预先储存三只即将孵化的阿拉克涅爆裂种,它们一旦被释放就会以自杀式袭击攻击敌方。</description>
<descriptionHyperlinks>
<HediffDef>ARA_Acidling_Pouch_Hediff</HediffDef>
<HediffDef>ARA_Baneling_Pouch_Hediff</HediffDef>
</descriptionHyperlinks>
<jobString>正在实施定向变异</jobString>
<ingredients>
@@ -725,16 +725,16 @@
<li>ARA_Activated_Bacterium</li>
</thingDefs>
</fixedIngredientFilter>
<addsHediff>ARA_Acidling_Pouch_Hediff</addsHediff>
<addsHediff>ARA_Baneling_Pouch_Hediff</addsHediff>
<researchPrerequisite>ARA_Technology_4EVO</researchPrerequisite>
</RecipeDef>
<HediffDef ParentName="AddedBodyPartBase">
<defName>ARA_Acidling_Pouch_Hediff</defName>
<defName>ARA_Baneling_Pouch_Hediff</defName>
<label>爆裂种蜕荚</label>
<hediffClass>Hediff_Implant</hediffClass>
<description>阿拉克涅虫族的蜕荚里装了若干只即将孵化的阿拉克涅爆裂种,只需要获得指令就会立刻破体而出攻击敌方。</description>
<descriptionHyperlinks>
<RecipeDef>ARA_Surgery_Install_Acidling_Pouch</RecipeDef>
<RecipeDef>ARA_Surgery_Install_Baneling_Pouch</RecipeDef>
</descriptionHyperlinks>
<addedPartProps>
<betterThanNatural>true</betterThanNatural>
@@ -742,17 +742,17 @@
<comps>
<li Class="HediffCompProperties_GiveAbility">
<abilityDefs>
<li>ARA_Pouch_Hatching_Acidling</li>
<li>ARA_Pouch_Hatching_Baneling</li>
</abilityDefs>
</li>
</comps>
</HediffDef>
<ThingDef ParentName="ARA_BodyPartProstheticBase">
<defName>ARA_Acidling_Pouch</defName>
<defName>ARA_Baneling_Pouch</defName>
<label>爆裂种蜕荚</label>
<description>阿拉克涅虫族的蜕荚里装了若干只即将孵化的阿拉克涅爆裂种,只需要获得指令就会立刻破体而出攻击敌方。该手术不需要制作部件,可以直接在阿拉克涅督虫身上实施。</description>
<descriptionHyperlinks>
<RecipeDef>ARA_Surgery_Install_Acidling_Pouch</RecipeDef>
<RecipeDef>ARA_Surgery_Install_Baneling_Pouch</RecipeDef>
</descriptionHyperlinks>
<recipeMaker>
<researchPrerequisite>ARA_Technology_4EVO</researchPrerequisite>

View File

@@ -29,7 +29,7 @@
<li>ARA_Surgery_Install_Reactive_Shell</li>
<li>ARA_Surgery_Install_Strengthening_Tendon</li>
<li>ARA_Surgery_Install_Slide_Patagium</li>
<li>ARA_Surgery_Install_Acidling_Pouch</li>
<li>ARA_Surgery_Install_Baneling_Pouch</li>
<li>ARA_Surgery_Install_Tumor_Pouch</li>
<li>ARA_Surgery_Install_Internal_Circulation_Lung</li>
</recipes>
@@ -524,6 +524,74 @@
</li>
</comps>
</ThingDef>
<ThingDef ParentName="ArachnaeBase_Race">
<defName>ArachnaeBase_Race_Empsuicider</defName>
<label>阿拉克涅电磁种</label>
<description>阿拉克涅辅虫之一智力低下一般以自杀式袭击的方式伤害敌军靠近敌人后就会释放EMP瘫痪附加的机械族如果其监管者督虫处于征召状态则会跟随督虫一起行动。</description>
<race>
<thinkTreeMain>ARA_Insect_Baneling_Thinktree</thinkTreeMain>
<baseBodySize>0.35</baseBodySize>
<!-- <hasCorpse>false</hasCorpse> -->
<body>BeetleLikeWithClaw</body>
<deathAction Class="DeathActionProperties_Vanish">
<workerClass>DeathActionWorker_Vanish</workerClass>
<filth>Filth_Slime</filth>
<filthCountRange>1~3</filthCountRange>
</deathAction>
</race>
<statBases>
<MoveSpeed>6.6</MoveSpeed>
</statBases>
<comps>
<li Class="ArachnaeSwarm.CompProperties_AdvancedTraining">
<trainables>
<li>
<trainable>Obedience</trainable>
<trainInstantly>true</trainInstantly>
<setWanted>true</setWanted>
</li>
<li>
<trainable>Release</trainable>
<trainInstantly>true</trainInstantly>
<setWanted>true</setWanted>
</li>
<li>
<trainable>Rescue</trainable>
<trainInstantly>true</trainInstantly>
<setWanted>true</setWanted>
</li>
<li>
<trainable>Tameness</trainable>
<trainInstantly>true</trainInstantly>
<setWanted>true</setWanted>
</li>
<li>
<trainable>AttackTarget</trainable>
<trainInstantly>true</trainInstantly>
<setWanted>true</setWanted>
</li>
</trainables>
<disableAllSkillDecay>true</disableAllSkillDecay> <!-- 阻止这个动物的所有技能衰减 -->
</li>
<li Class="ArachnaeSwarm.CompProperties_HunterExplosion">
<explosionRadius>6</explosionRadius> <!-- Mapped from smokeRadius -->
<explosionDamageType>EMP</explosionDamageType>
<explosionDamageAmount>65</explosionDamageAmount>
<armorPenetration>2</armorPenetration>
<explosionSound>Explosion_EMP</explosionSound>
<!-- <postExplosionSpawnThingDef>ARA_AcidGasCloud</postExplosionSpawnThingDef>
<postExplosionSpawnChance>1</postExplosionSpawnChance>
<postExplosionSpawnThingCount>1</postExplosionSpawnThingCount> -->
</li>
<li Class="ArachnaeSwarm.CompProperties_HediffGiver">
<hediffs>
<li>ARA_HiveMindWorker</li>
</hediffs>
<addChance>1.0</addChance>
<allowDuplicates>false</allowDuplicates>
</li>
</comps>
</ThingDef>
<ThingDef ParentName="ArachnaeBase_Race">
<defName>ArachnaeBase_Race_Skyhive</defName>
<label>阿拉克涅天巢种</label>
@@ -608,6 +676,80 @@
</li>
</comps>
</ThingDef>
<ThingDef ParentName="ArachnaeBase_Race">
<defName>ArachnaeBase_Race_Locust</defName>
<label>阿拉克涅天巢种</label>
<description>阿拉克涅辅虫之一,拥有贴地飞行的能力,无论是攻击还是移动速度非常快。</description>
<race>
<thinkTreeMain>ARA_Insect_Locust_Thinktree</thinkTreeMain>
<baseBodySize>0.36</baseBodySize>
<!-- <hasCorpse>false</hasCorpse> -->
<body>BeetleLikeWithClaw</body>
<deathAction Class="DeathActionProperties_Vanish">
<workerClass>DeathActionWorker_Vanish</workerClass>
<filth>Filth_Slime</filth>
<filthCountRange>1~3</filthCountRange>
</deathAction>
</race>
<statBases>
<MoveSpeed>5.5</MoveSpeed>
<ArmorRating_Blunt>0.4</ArmorRating_Blunt>
<ArmorRating_Sharp>0.4</ArmorRating_Sharp>
<ArmorRating_Heat>0.25</ArmorRating_Heat>
</statBases>
<tools Inherit="False">
<li>
<label>复合颚</label>
<capacities>
<li>Cut</li>
</capacities>
<power>3</power>
<cooldownTime>0.8</cooldownTime>
<linkedBodyPartsGroup>HeadAttackTool</linkedBodyPartsGroup>
<ensureLinkedBodyPartsGroupAlwaysUsable>true</ensureLinkedBodyPartsGroupAlwaysUsable>
</li>
</tools>
<comps>
<li Class="ArachnaeSwarm.CompProperties_AdvancedTraining">
<trainables>
<li>
<trainable>Obedience</trainable>
<trainInstantly>true</trainInstantly>
<setWanted>true</setWanted>
</li>
<li>
<trainable>Release</trainable>
<trainInstantly>true</trainInstantly>
<setWanted>true</setWanted>
</li>
<li>
<trainable>Rescue</trainable>
<trainInstantly>true</trainInstantly>
<setWanted>true</setWanted>
</li>
<li>
<trainable>Tameness</trainable>
<trainInstantly>true</trainInstantly>
<setWanted>true</setWanted>
</li>
<li>
<trainable>AttackTarget</trainable>
<trainInstantly>true</trainInstantly>
<setWanted>true</setWanted>
</li>
</trainables>
<disableAllSkillDecay>true</disableAllSkillDecay> <!-- 阻止这个动物的所有技能衰减 -->
</li>
<li Class="ArachnaeSwarm.CompProperties_HediffGiver">
<hediffs>
<li>ARA_HiveMindWorker</li>
</hediffs>
<addChance>1.0</addChance>
<allowDuplicates>false</allowDuplicates>
</li>
</comps>
</ThingDef>
<ToolCapacityDef>
<defName>ARA_AcidCut</defName>

View File

@@ -74,7 +74,7 @@
</comps>
</ThingDef>
<ThingDef ParentName="ARA_BaseDroneSwarm">
<defName>ArachnaeBase_Race_Acidling</defName>
<defName>ArachnaeBase_Race_Baneling</defName>
<label>阿拉克涅爆裂种</label>
<description>阿拉克涅辅虫之一,智力低下,一般以自杀式袭击的方式伤害敌军,靠近敌人后就会引爆酸囊产生危险的酸性雾气。</description>
<race>
@@ -112,32 +112,5 @@
</li>
</tools>
</ThingDef>
<ThingDef ParentName="ARA_BaseDroneSwarm">
<defName>ArachnaeBase_Race_Empsuicider</defName>
<label>阿拉克涅爆裂种</label>
<description>阿拉克涅辅虫之一智力低下一般以自杀式袭击的方式伤害敌军靠近敌人后就会释放EMP瘫痪附加的机械族。</description>
<race>
<thinkTreeConstant>HunterDroneConstant</thinkTreeConstant>
<baseBodySize>0.25</baseBodySize>
<!-- <hasCorpse>false</hasCorpse> -->
<body>BeetleLikeWithClaw</body>
<baseHealthScale>1</baseHealthScale>
</race>
<statBases>
<MoveSpeed>6</MoveSpeed>
</statBases>
<comps>
<li Class="ArachnaeSwarm.CompProperties_HunterExplosion">
<explosionRadius>6</explosionRadius> <!-- Mapped from smokeRadius -->
<explosionDamageType>EMP</explosionDamageType>
<explosionDamageAmount>65</explosionDamageAmount>
<armorPenetration>2</armorPenetration>
<explosionSound>Explosion_EMP</explosionSound>
<!-- <postExplosionSpawnThingDef>ARA_AcidGasCloud</postExplosionSpawnThingDef>
<postExplosionSpawnChance>1</postExplosionSpawnChance>
<postExplosionSpawnThingCount>1</postExplosionSpawnThingCount> -->
</li>
</comps>
</ThingDef>
</Defs>

View File

@@ -625,7 +625,7 @@
<li>ARA_Surgery_Install_Reactive_Shell</li>
<li>ARA_Surgery_Install_Strengthening_Tendon</li>
<li>ARA_Surgery_Install_Slide_Patagium</li>
<li>ARA_Surgery_Install_Acidling_Pouch</li>
<li>ARA_Surgery_Install_Baneling_Pouch</li>
<li>ARA_Surgery_Install_Tumor_Pouch</li>
<li>ARA_Surgery_Install_Internal_Circulation_Lung</li>
</recipes>

View File

@@ -556,7 +556,7 @@
<li>ARA_Surgery_Install_Reactive_Shell</li>
<li>ARA_Surgery_Install_Strengthening_Tendon</li>
<li>ARA_Surgery_Install_Slide_Patagium</li>
<li>ARA_Surgery_Install_Acidling_Pouch</li>
<li>ARA_Surgery_Install_Baneling_Pouch</li>
<li>ARA_Surgery_Install_Tumor_Pouch</li>
<li>ARA_Surgery_Install_Internal_Circulation_Lung</li>
</recipes>

View File

@@ -2158,7 +2158,7 @@
<label>阿拉克涅磁暴种</label>
<thingClass>Projectile_SpawnsPawnZeroAge</thingClass>
<graphicData>
<texPath>ArachnaeSwarm/Things/ARA_Acidling/BodiesEmp/Naked_Thin_north</texPath>
<texPath>ArachnaeSwarm/Things/ARA_Baneling/BodiesEmp/Naked_Thin_north</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<projectile>

View File

@@ -96,7 +96,7 @@
</modExtensions>
</ThingDef>
<ThingDef ParentName="PlantBase">
<defName>ARA_AcidlingTrapPlant</defName>
<defName>ARA_BanelingTrapPlant</defName>
<label>爆裂巢花</label>
<thingClass>ArachnaeSwarm.Plant_Transforming</thingClass>
<description>一种由阿拉克涅虫群培育的真菌混合体,它会汲取菌毯的营养,在生长到一定阶段后进行变态发育,最终转换成一枚阿拉克涅爆裂茧——一种会对附近的敌军释放自杀性辅虫的特殊陷阱。</description>
@@ -107,7 +107,7 @@
<Nutrition>0.2</Nutrition>
</statBases>
<graphicData>
<texPath>ArachnaeSwarm/Plant/ARA_AcidlingTrapPlant</texPath>
<texPath>ArachnaeSwarm/Plant/ARA_BanelingTrapPlant</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<selectable>true</selectable>
@@ -132,7 +132,7 @@
</plant>
<modExtensions>
<li Class="ArachnaeSwarm.PlantTransformExtension">
<buildingDef>Arachnae_AcidlingTrap</buildingDef>
<buildingDef>Arachnae_BanelingTrap</buildingDef>
<transformAtGrowth>0.8</transformAtGrowth>
</li>
</modExtensions>

View File

@@ -57,7 +57,7 @@
<li>ARA_MorphableResearchBench</li>
<li>ARANutrientDispenser</li>
<li>ARA_WormholePortal_A</li>
<li>ARA_Acidling_AutoMortar</li>
<li>ARA_Baneling_AutoMortar</li>
<li>CatastropheMissileSilo</li>
<li>ARA_AutoSniperCannon</li>
<li>ARA_Pawn_Ootheca</li>

View File

@@ -198,7 +198,7 @@
</ThingDef>
<ThingDef>
<defName>Arachnae_AcidlingTrap</defName>
<defName>Arachnae_BanelingTrap</defName>
<label>阿拉克涅爆裂茧</label>
<description>一种阿拉克涅休眠茧,内藏有休眠中的阿拉克涅虫族。如果靠太近则会唤醒其中的虫族。</description>
<thingClass>ArachnaeSwarm.Building_TrapReleaseRandom</thingClass>
@@ -228,7 +228,7 @@
<MarketValue>50</MarketValue>
</statBases>
<graphicData>
<texPath>ArachnaeSwarm/Plant/ARA_AcidlingTrapPlant</texPath>
<texPath>ArachnaeSwarm/Plant/ARA_BanelingTrapPlant</texPath>
<graphicClass>Graphic_Single</graphicClass>
<drawSize>1.2</drawSize>
<shadowData>
@@ -242,7 +242,7 @@
<detectionRadius>5</detectionRadius>
<countToSpawn>3</countToSpawn>
<pawnKinds>
<li>ArachnaeBase_Race_Acidling</li>
<li>ArachnaeBase_Race_Baneling</li>
<!-- <li>ArachnaeBase_Race_Acid</li> -->
</pawnKinds>
</li>
@@ -394,14 +394,14 @@
</ThingDef>
<!-- Auto mortar -->
<ThingDef ParentName="BuildingBase">
<defName>ARA_Acidling_AutoMortar</defName>
<defName>ARA_Baneling_AutoMortar</defName>
<label>爆裂种投射巢组织</label>
<description>阿拉克涅虫族用于防御巢穴的组织之一。它由大量没有自主意识的高度特化器官共同构成,能向进犯巢穴的敌军发射多只阿拉克涅爆裂种辅虫,这些辅虫将自行寻找目标以发起自杀性袭击。作为阿拉克涅防御组织,其可以通过获取营养来自行生成补充弹药。</description>
<thingClass>ArachnaeSwarm.Building_TurretGunHasSpeed</thingClass>
<drawerType>MapMeshAndRealTime</drawerType>
<drawHighlight>true</drawHighlight>
<drawHighlightOnlyForHostile>true</drawHighlightOnlyForHostile>
<uiIconPath>ArachnaeSwarm/Building/ARA_Acidling_AutoMortar_Icon</uiIconPath>
<uiIconPath>ArachnaeSwarm/Building/ARA_Baneling_AutoMortar_Icon</uiIconPath>
<graphicData>
<texPath>ArachnaeSwarm/Building/ARA_AutoSniperCannon_Base</texPath>
<graphicClass>Graphic_Single</graphicClass>
@@ -481,7 +481,7 @@
<buildingTags>
<li>Artillery</li>
</buildingTags>
<turretGunDef>ARA_Acidling_Artillery_AutoMortar</turretGunDef>
<turretGunDef>ARA_Baneling_Artillery_AutoMortar</turretGunDef>
<turretBurstWarmupTime>10.0</turretBurstWarmupTime>
<turretTopDrawSize>3.0</turretTopDrawSize>
<relatedTerrain>
@@ -496,10 +496,10 @@
<constructionSkillPrerequisite>8</constructionSkillPrerequisite>
</ThingDef>
<ThingDef ParentName="BaseArtilleryWeapon">
<defName>ARA_Acidling_Artillery_AutoMortar</defName>
<defName>ARA_Baneling_Artillery_AutoMortar</defName>
<label>爆裂种投射巢</label>
<graphicData>
<texPath>ArachnaeSwarm/Building/ARA_Acidling_Artillery_AutoMortar_Tower</texPath>
<texPath>ArachnaeSwarm/Building/ARA_Baneling_Artillery_AutoMortar_Tower</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<uiIconScale>1.25</uiIconScale>
@@ -509,7 +509,7 @@
<verbs>
<li>
<verbClass>ArachnaeSwarm.Verb_ShootWithOffset</verbClass>
<defaultProjectile>ArachnaeBase_Race_Acidling_Proj</defaultProjectile>
<defaultProjectile>ArachnaeBase_Race_Baneling_Proj</defaultProjectile>
<ai_AvoidFriendlyFireRadius>3</ai_AvoidFriendlyFireRadius>
<warmupTime>2</warmupTime>
<range>500</range>
@@ -534,16 +534,16 @@
</modExtensions>
</ThingDef>
<ThingDef ParentName="BaseGrenadeProjectile">
<defName>ArachnaeBase_Race_Acidling_Proj</defName>
<defName>ArachnaeBase_Race_Baneling_Proj</defName>
<label>阿拉克涅爆裂种</label>
<thingClass>Projectile_SpawnsPawnZeroAge</thingClass>
<graphicData>
<texPath>ArachnaeSwarm/Things/ARA_Acidling/Bodies/Naked_Thin</texPath>
<texPath>ArachnaeSwarm/Things/ARA_Baneling/Bodies/Naked_Thin</texPath>
<graphicClass>Graphic_Multi</graphicClass>
</graphicData>
<projectile>
<speed>41</speed>
<spawnsPawnKind>ArachnaeBase_Race_Acidling</spawnsPawnKind>
<spawnsPawnKind>ArachnaeBase_Race_Baneling</spawnsPawnKind>
<tryAdjacentFreeSpaces>true</tryAdjacentFreeSpaces>
<damageDef>ARA_AcidBurn</damageDef>
<damageAmountBase>10</damageAmountBase>

View File

@@ -1102,6 +1102,26 @@
</subNodes>
</li>
<!-- 特殊处理——非生产者生产会使用单元逻辑 -->
<li Class="ThinkNode_ConditionalOfPlayerFaction">
<subNodes>
<li Class="ArachnaeSwarm.ThinkNode_ConditionalNotProducedByMechCarrier">
<subNodes>
<li Class="JobGiver_AIFightEnemies">
<targetAcquireRadius>100</targetAcquireRadius>
<targetKeepRadius>100</targetKeepRadius>
</li>
<li Class="JobGiver_AITrashColonyClose" />
<li Class="JobGiver_AITrashBuildingsDistant" />
<li Class="JobGiver_AIGotoNearestHostile" />
<li Class="JobGiver_AITrashBuildingsDistant">
<attackAllInert>true</attackAllInert>
</li>
<li Class="JobGiver_WanderAnywhere" />
</subNodes>
</li>
</subNodes>
</li>
<!-- 特殊处理——如果生产者被征召会跟随pawn -->
<li Class="ThinkNode_ConditionalOfPlayerFaction">
<subNodes>
@@ -1442,6 +1462,26 @@
</subNodes>
</li>
<!-- 特殊处理——非生产者生产会使用单元逻辑 -->
<li Class="ThinkNode_ConditionalOfPlayerFaction">
<subNodes>
<li Class="ArachnaeSwarm.ThinkNode_ConditionalNotProducedByMechCarrier">
<subNodes>
<li Class="JobGiver_AIFightEnemies">
<targetAcquireRadius>100</targetAcquireRadius>
<targetKeepRadius>100</targetKeepRadius>
</li>
<li Class="JobGiver_AITrashColonyClose" />
<li Class="JobGiver_AITrashBuildingsDistant" />
<li Class="JobGiver_AIGotoNearestHostile" />
<li Class="JobGiver_AITrashBuildingsDistant">
<attackAllInert>true</attackAllInert>
</li>
<li Class="JobGiver_WanderAnywhere" />
</subNodes>
</li>
</subNodes>
</li>
<!-- 特殊处理——如果生产者被征召会跟随pawn -->
<li Class="ThinkNode_ConditionalOfPlayerFaction">
<subNodes>
@@ -2305,6 +2345,26 @@
</subNodes>
</li>
<!-- 特殊处理——非生产者生产会使用单元逻辑 -->
<li Class="ThinkNode_ConditionalOfPlayerFaction">
<subNodes>
<li Class="ArachnaeSwarm.ThinkNode_ConditionalNotProducedByMechCarrier">
<subNodes>
<li Class="JobGiver_AIFightEnemies">
<targetAcquireRadius>100</targetAcquireRadius>
<targetKeepRadius>100</targetKeepRadius>
</li>
<li Class="JobGiver_AITrashColonyClose" />
<li Class="JobGiver_AITrashBuildingsDistant" />
<li Class="JobGiver_AIGotoNearestHostile" />
<li Class="JobGiver_AITrashBuildingsDistant">
<attackAllInert>true</attackAllInert>
</li>
<li Class="JobGiver_WanderAnywhere" />
</subNodes>
</li>
</subNodes>
</li>
<!-- 特殊处理——如果生产者被征召会跟随pawn -->
<li Class="ThinkNode_ConditionalOfPlayerFaction">
<subNodes>
@@ -2559,6 +2619,26 @@
</subNodes>
</li>
<!-- 特殊处理——非生产者生产会使用单元逻辑 -->
<li Class="ThinkNode_ConditionalOfPlayerFaction">
<subNodes>
<li Class="ArachnaeSwarm.ThinkNode_ConditionalNotProducedByMechCarrier">
<subNodes>
<li Class="JobGiver_AIFightEnemies">
<targetAcquireRadius>100</targetAcquireRadius>
<targetKeepRadius>100</targetKeepRadius>
</li>
<li Class="JobGiver_AITrashColonyClose" />
<li Class="JobGiver_AITrashBuildingsDistant" />
<li Class="JobGiver_AIGotoNearestHostile" />
<li Class="JobGiver_AITrashBuildingsDistant">
<attackAllInert>true</attackAllInert>
</li>
<li Class="JobGiver_WanderAnywhere" />
</subNodes>
</li>
</subNodes>
</li>
<!-- 特殊处理——如果生产者被征召会跟随pawn -->
<li Class="ThinkNode_ConditionalOfPlayerFaction">
<subNodes>
@@ -2691,6 +2771,313 @@
</subNodes>
</thinkRoot>
</ThinkTreeDef>
<ThinkTreeDef>
<defName>ARA_Insect_Locust_Thinktree</defName>
<thinkRoot Class="ThinkNode_Priority">
<subNodes>
<!-- Keep lying down if we have to -->
<li Class="ThinkNode_ConditionalMustKeepLyingDown">
<subNodes>
<!-- Do a queued job if possible -->
<li Class="ThinkNode_QueuedJob">
<inBedOnly>true</inBedOnly>
</li>
<!-- Keep lying down -->
<li Class="JobGiver_KeepLyingDown"/>
</subNodes>
</li>
<li Class="ThinkNode_Subtree">
<treeDef>Downed</treeDef>
</li>
<li Class="ThinkNode_Subtree">
<treeDef>BurningResponse</treeDef>
</li>
<li Class="ThinkNode_Subtree">
<treeDef>MentalStateCritical</treeDef>
</li>
<!-- React to close melee threat -->
<li Class="JobGiver_ReactToCloseMeleeThreat">
<maxDistance>2.9</maxDistance>
</li>
<!-- Do a queued job -->
<li Class="ThinkNode_QueuedJob"/>
<!-- Mental state non critical -->
<li Class="ThinkNode_Subtree">
<treeDef>MentalStateNonCritical</treeDef>
</li>
<!-- Forced goto -->
<li Class="ThinkNode_ConditionalForcedGoto">
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Misc</tagToGive>
<subNodes>
<li Class="JobGiver_ForcedGoto"/>
</subNodes>
</li>
</subNodes>
</li>
<!-- Behavior when roped -->
<li Class="ThinkNode_Subtree">
<treeDef>RopedPawn</treeDef>
</li>
<!-- Lord directives -->
<li Class="ThinkNode_Subtree">
<treeDef>LordDuty</treeDef>
</li>
<li Class="ThinkNode_ConditionalHasFaction">
<invert>true</invert>
<subNodes>
<!-- Wild insects with no lord will fight nearby enemies -->
<li Class="JobGiver_AIFightEnemies">
<targetAcquireRadius>30</targetAcquireRadius> <!-- Same as DefendAndExpandHive -->
<targetKeepRadius>35</targetKeepRadius>
</li>
<!-- Wild insects leave map in some conditions -->
<li Class="ThinkNode_Subtree">
<treeDef>LeaveIfWrongSeason</treeDef>
</li>
<li Class="ThinkNode_Subtree">
<treeDef>LeaveIfStarving</treeDef>
</li>
<!-- Wild insects randomly leave map -->
<li Class="ThinkNode_ChancePerHour_Constant">
<mtbDays>60</mtbDays>
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Misc</tagToGive>
<subNodes>
<li Class="JobGiver_ExitMapRandom">
<defaultLocomotion>Walk</defaultLocomotion>
</li>
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- Insects of a faction that's not the players without a lord leave randomly -->
<li Class="ThinkNode_ConditionalOfPlayerFaction">
<invert>true</invert>
<subNodes>
<li Class="ThinkNode_ConditionalHasFaction">
<subNodes>
<li Class="ThinkNode_ConditionalNoLord">
<subNodes>
<li Class="ThinkNode_ChancePerHour_Constant">
<mtbDays>60</mtbDays>
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Misc</tagToGive>
<subNodes>
<li Class="JobGiver_ExitMapRandom">
<defaultLocomotion>Walk</defaultLocomotion>
</li>
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- 特殊处理——非生产者生产会使用单元逻辑 -->
<li Class="ThinkNode_ConditionalOfPlayerFaction">
<subNodes>
<li Class="ArachnaeSwarm.ThinkNode_ConditionalNotProducedByMechCarrier">
<subNodes>
<li Class="JobGiver_FleeForDistance">
<enemyDistToFleeRange>2.9~7.9</enemyDistToFleeRange>
<fleeDistRange>13.5~20</fleeDistRange>
</li>
<!-- React to close melee threat -->
<li Class="JobGiver_ReactToCloseMeleeThreat">
<maxDistance>2.9</maxDistance>
</li>
<!-- Fire spikes at distant enemies -->
<li Class="JobGiver_AIAbilityFight">
<targetAcquireRadius>65</targetAcquireRadius>
<targetKeepRadius>72</targetKeepRadius>
<skipIfCantTargetNow>true</skipIfCantTargetNow>
<ability>ARA_Locust_Needle_Fire</ability>
<allowTurrets>true</allowTurrets>
<needLOSToAcquireNonPawnTargets>true</needLOSToAcquireNonPawnTargets>
</li>
<li Class="JobGiver_AITrashColonyClose" />
<li Class="JobGiver_AITrashBuildingsDistant" />
<li Class="JobGiver_AIGotoNearestHostile" />
<li Class="JobGiver_AITrashBuildingsDistant">
<attackAllInert>true</attackAllInert>
</li>
<li Class="JobGiver_WanderAnywhere" />
</subNodes>
</li>
</subNodes>
</li>
<!-- 特殊处理——如果生产者被征召会跟随pawn -->
<li Class="ThinkNode_ConditionalOfPlayerFaction">
<subNodes>
<li Class="ArachnaeSwarm.ThinkNode_ConditionalShouldFollowProducer">
<subNodes>
<!-- <li Class="ArachnaeSwarm.JobGiver_AIDefendProducer">
<attackMeleeThreatEvenIfNotHostile>true</attackMeleeThreatEvenIfNotHostile>
<defendRadius>100</defendRadius>
</li> -->
<!-- Keep distance -->
<li Class="JobGiver_FleeForDistance">
<enemyDistToFleeRange>2.9~7.9</enemyDistToFleeRange>
<fleeDistRange>13.5~20</fleeDistRange>
</li>
<!-- React to close melee threat -->
<li Class="JobGiver_ReactToCloseMeleeThreat">
<maxDistance>2.9</maxDistance>
</li>
<!-- Fire spikes at distant enemies -->
<li Class="JobGiver_AIAbilityFight">
<targetAcquireRadius>65</targetAcquireRadius>
<targetKeepRadius>72</targetKeepRadius>
<skipIfCantTargetNow>true</skipIfCantTargetNow>
<ability>ARA_Locust_Needle_Fire</ability>
<allowTurrets>true</allowTurrets>
<needLOSToAcquireNonPawnTargets>true</needLOSToAcquireNonPawnTargets>
</li>
<li Class="ArachnaeSwarm.JobGiver_AIFollowProducer"/>
<li Class="ArachnaeSwarm.JobGiver_WanderNearProducer"/>
</subNodes>
</li>
<!-- Take care of critical needs (below rescue - so heroic!)-->
<li Class="ThinkNode_Tagger">
<tagToGive>RestingForMedicalReasons</tagToGive>
<subNodes>
<li Class="JobGiver_PatientGoToBed"/>
</subNodes>
</li>
<li Class="JobGiver_SeekAllowedArea"/>
<li Class="JobGiver_SeekSafeTemperature"/>
</subNodes>
</li>
<!-- Satisfy basic needs -->
<li Class="ThinkNode_Subtree">
<treeDef>SatisfyBasicNeeds</treeDef>
</li>
<!-- Tame animal: wander near colony if possible -->
<li Class="ThinkNode_ConditionalOfPlayerFaction">
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Idle</tagToGive>
<subNodes>
<!-- Wander near your current position if in hostile map -->
<li Class="ThinkNode_ConditionalAnyEnemyInHostileMap">
<subNodes>
<li Class="JobGiver_WanderAnywhere">
<maxDanger>None</maxDanger>
<ticksBetweenWandersRange>160~300</ticksBetweenWandersRange>
</li>
</subNodes>
</li>
<li Class="ThinkNode_ConditionalRoamer">
<subNodes>
<li Class="JobGiver_WanderInRoofedCellsInPen">
<maxDanger>None</maxDanger>
<ticksBetweenWandersRange>160~300</ticksBetweenWandersRange>
<expiryInterval>1200</expiryInterval>
</li>
<!-- tame roamers should not wander too far, and if unenclosed wander near a suitable pen marker 10% of the time -->
<li Class="ThinkNode_ConditionalRandom">
<chance>0.1</chance>
<subNodes>
<li Class="JobGiver_WanderInPen">
<maxDanger>None</maxDanger>
<ticksBetweenWandersRange>160~300</ticksBetweenWandersRange>
<expiryInterval>1200</expiryInterval>
</li>
</subNodes>
</li>
<li Class="JobGiver_WanderAnywhere">
<maxDanger>None</maxDanger>
<ticksBetweenWandersRange>160~300</ticksBetweenWandersRange>
</li>
</subNodes>
</li>
<!-- Wander near colony -->
<li Class="JobGiver_WanderColony">
<maxDanger>None</maxDanger>
<ticksBetweenWandersRange>160~300</ticksBetweenWandersRange>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- Of neutral faction: rest and then exit the map -->
<li Class="ThinkNode_ConditionalNonPlayerNonHostileFaction">
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>RestingForMedicalReasons</tagToGive>
<subNodes>
<li Class="JobGiver_PatientGoToBed" />
</subNodes>
</li>
<li Class="ThinkNode_Tagger">
<tagToGive>Misc</tagToGive>
<subNodes>
<li Class="JobGiver_ExitMapBest">
<defaultLocomotion>Walk</defaultLocomotion>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- Wander -->
<li Class="ThinkNode_Tagger">
<tagToGive>Idle</tagToGive>
<subNodes>
<li Class="ThinkNode_ConditionalHerdAnimal">
<subNodes>
<li Class="JobGiver_WanderHerd">
<maxDanger>Deadly</maxDanger>
<ticksBetweenWandersRange>160~300</ticksBetweenWandersRange>
</li>
</subNodes>
</li>
<li Class="JobGiver_WanderAnywhere">
<maxDanger>Deadly</maxDanger>
<ticksBetweenWandersRange>160~300</ticksBetweenWandersRange>
</li>
</subNodes>
</li>
<li Class="JobGiver_IdleError"/>
</subNodes>
</thinkRoot>
</ThinkTreeDef>
<ThinkTreeDef>
<defName>ARA_Humanlike</defName> <!-- 更改defName以避免与原版Humanlike冲突 -->