Merge branch '拟线种'

This commit is contained in:
2025-09-10 15:00:54 +08:00
12 changed files with 965 additions and 10 deletions

Binary file not shown.

View File

@@ -54,6 +54,16 @@
</additionalHediffsThisPart>
</DamageDef>
<DamageDef ParentName="Bite">
<defName>ARA_MimicNematodeBite</defName>
<additionalHediffs>
<li>
<hediff>ARA_MimicNematode</hediff>
<severityPerDamageDealt>0.001</severityPerDamageDealt>
</li>
</additionalHediffs>
</DamageDef>
<DamageDef>
<defName>ARA_ReinforceGas</defName>
<label>信息素烟雾</label>

View File

@@ -196,4 +196,6 @@
<li Class="HediffCompProperties_DisappearsOnDeath"/>
</comps>
</HediffDef>
</Defs>

View File

@@ -0,0 +1,266 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<HediffDef>
<defName>ARA_MimicNematode</defName>
<label>拟线种虫族寄生</label>
<description>被阿拉克涅拟线种虫族寄生了,如果不加以干预,拟线虫最终会杀死宿主并将其转化为没有意识的寄生体。拟线虫会通过寄生体的攻击行为感染其他躯体。</description>
<!-- 1. 指向我们创建的包含Comp的Hediff类 -->
<hediffClass>ArachnaeSwarm.Hediff_NecroticVirus</hediffClass>
<defaultLabelColor>(0.6, 0.4, 0.8)</defaultLabelColor>
<isBad>true</isBad>
<maxSeverity>1.0</maxSeverity>
<lethalSeverity>1.0</lethalSeverity>
<minSeverity>0.001</minSeverity>
<initialSeverity>0.001</initialSeverity>
<everCurableByItem>false</everCurableByItem>
<stages>
<li>
<label>潜伏期</label>
<becomeVisible>false</becomeVisible>
<vomitMtbDays>5</vomitMtbDays>
</li>
<li>
<label>活跃期</label>
<minSeverity>0.5</minSeverity>
<vomitMtbDays>1</vomitMtbDays>
<painFactor>0.5</painFactor>
<becomeVisible>false</becomeVisible>
<capMods>
<li>
<capacity>Talking</capacity>
<postFactor>0</postFactor>
</li>
</capMods>
</li>
<li>
<label>终末期</label>
<minSeverity>0.7</minSeverity>
<deathMtbDays>0.5</deathMtbDays>
<painFactor>0</painFactor>
<lifeThreatening>true</lifeThreatening>
<becomeVisible>true</becomeVisible>
<capMods>
<li>
<capacity>Talking</capacity>
<postFactor>0</postFactor>
</li>
<li>
<capacity>Consciousness</capacity>
<postFactor>0.7</postFactor>
</li>
</capMods>
<regeneration>50</regeneration>
</li>
<li>
<label>即将转化</label>
<minSeverity>0.9</minSeverity>
<deathMtbDays>0.5</deathMtbDays>
<painFactor>2.0</painFactor>
<lifeThreatening>true</lifeThreatening>
<becomeVisible>true</becomeVisible>
<capMods>
<li>
<capacity>Talking</capacity>
<postFactor>0</postFactor>
</li>
<li>
<capacity>Consciousness</capacity>
<setMax>0.1</setMax>
</li>
</capMods>
<regeneration>50</regeneration>
</li>
</stages>
<tendable>true</tendable>
<!-- 2. 这是最关键的配置部分 -->
<comps>
<li Class="HediffCompProperties_SeverityPerDay">
<severityPerDay>0.3</severityPerDay>
</li>
<li Class="HediffCompProperties_TendDuration">
<severityPerDayTended>-1</severityPerDayTended>
<baseTendDurationHours>24</baseTendDurationHours>
</li>
<li Class="HediffCompProperties_Disappears">
<disappearsAfterTicks>1800000~2400000</disappearsAfterTicks> <!-- 30 ! 45 days -->
<showRemainingTime>true</showRemainingTime>
</li>
<li Class="ArachnaeSwarm.HediffCompProperties_NecroticTransformation">
<!-- 3. 在这里指定你希望转化成的MutantDef的defName -->
<!-- 例如: Shambler, Ghoul, 或者您自己定义的其他变异体 -->
<mutantDef>ARA_MimicNematodeShambler</mutantDef>
<triggerSeverity>0.7</triggerSeverity>
</li>
<li Class="HediffCompProperties_DisappearsOnDeath" />
</comps>
<modExtensions>
<li Class="ArachnaeSwarm.ProphecyGearEffect">
<!-- 只有当攻击者同时拥有'ARA_MimicNematode'这个仿生体时,以下效果才会触发 -->
<requiredBionicHediff>ARA_MimicNematode</requiredBionicHediff>
<!-- 额外造成5%的'ARA_MimicNematodeBite'伤害 -->
<enableExtraDamage>true</enableExtraDamage>
<extraDamageFactor>0.05</extraDamageFactor>
<extraDamageType>ARA_MimicNematodeBite</extraDamageType>
</li>
</modExtensions>
</HediffDef>
<RecipeDef ParentName="SurgeryFlesh">
<defName>ARA_CureBloodRot</defName>
<label>清除拟线虫感染</label>
<description>通过多种药物联合靶向治疗清除患者体内的阿拉克涅拟线种虫族感染。</description>
<workerClass>Recipe_RemoveHediff</workerClass>
<jobString>清除拟线虫感染.</jobString>
<workAmount>2000</workAmount>
<hideBodyPartNames>true</hideBodyPartNames>
<isViolation>false</isViolation>
<targetsBodyPart>false</targetsBodyPart>
<removesHediff>ARA_MimicNematode</removesHediff>
<successfullyRemovedHediffMessage>{0} 成功清除了 {1} 体内的拟线虫感染.</successfullyRemovedHediffMessage>
<skillRequirements>
<Medicine>5</Medicine>
</skillRequirements>
<ingredients>
<li>
<filter>
<thingDefs>
<li>MedicineUltratech</li>
</thingDefs>
</filter>
<count>10</count>
</li>
</ingredients>
<fixedIngredientFilter>
<categories>
<li>Medicine</li>
</categories>
</fixedIngredientFilter>
</RecipeDef>
<!-- 这是我们的主要变异体Hediff现在使用我们自己的可配置类 -->
<HediffDef>
<defName>ARA_MimicNematodeShambler</defName>
<label>阿拉克涅拟线种寄生体</label>
<description>这具尸体被一种阿拉克涅拟线虫所寄生并重新激活。被寄生的生物行动迟缓、没有心智,只会无情地攻击任何活物。在活动几天后,寄生体将因宿主新陈代谢衰竭而死亡。被捕获并固定后,寄生体无法移动,因此其生命活动会暂停。</description>
<hediffClass>ArachnaeSwarm.Hediff_ConfigurableMutant</hediffClass> <!-- 指向我们自己的类 -->
<defaultLabelColor>(0.6, 0.4, 0.8)</defaultLabelColor>
<everCurableByItem>false</everCurableByItem>
<duplicationAllowed>false</duplicationAllowed>
<keepOnBodyPartRestoration>True</keepOnBodyPartRestoration>
<stages>
<li>
<naturalHealingFactor>0</naturalHealingFactor>
<painFactor>0</painFactor>
<statFactors>
<MeleeCooldownFactor>1.5</MeleeCooldownFactor>
<PsychicSensitivity>0</PsychicSensitivity>
</statFactors>
<statOffsets>
<ComfyTemperatureMin>-60</ComfyTemperatureMin>
<ComfyTemperatureMax>30</ComfyTemperatureMax>
<MinimumContainmentStrength>25</MinimumContainmentStrength>
<ToxicResistance>1</ToxicResistance>
</statOffsets>
<capMods>
<li><capacity>Talking</capacity><postFactor>0</postFactor></li>
<li><capacity>Consciousness</capacity><postFactor>0.7</postFactor></li>
</capMods>
<regeneration>200</regeneration>
</li>
</stages>
<comps>
<!-- 原版的消失组件保持不变-->
<li Class="HediffCompProperties_DisappearsAndKills">
<compClass>HediffComp_DisappearsAndKills_Shambler</compClass>
<disappearsAfterTicks>1800000~2400000</disappearsAfterTicks> <!-- 30 ! 45 days -->
<showRemainingTime>true</showRemainingTime>
</li>
<li Class="HediffCompProperties_DisappearsOnDeath" />
<li Class="HediffCompProperties_AttachPoints" />
<!-- 添加我们的新配置组件 -->
<li Class="ArachnaeSwarm.HediffCompProperties_ConfigurableMutant">
<!-- 1. 定义起身和尸体状态 -->
<risingHediff>ARA_Rising</risingHediff>
<corpseHediff>ARA_MimicNematodeShamblerShamblerCorpse</corpseHediff>
<!-- 2. (可选) 覆盖其他默认值 -->
<bioferriteOnDeathChance>0</bioferriteOnDeathChance>
<bioferriteAmountOnDeath>0</bioferriteAmountOnDeath>
</li>
</comps>
<renderNodeProperties>
<li>
<debugLabel>ARA_Swarm_claws</debugLabel>
<workerClass>PawnRenderNodeWorker_AttachmentBody</workerClass>
<texPaths>
<li>ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Addons_Fighter_Claw</li>
</texPaths>
<baseLayer>60</baseLayer>
<texSeed>1</texSeed>
<drawData>
<dataNorth>
<flip>true</flip>
</dataNorth>
</drawData>
</li>
</renderNodeProperties>
</HediffDef>
<!-- ====================================================================== -->
<!-- 以下是上面引用的两个Hediff的定义保持不变 -->
<HediffDef>
<defName>ARA_Rising</defName>
<label>起身中</label>
<description>阿拉克涅拟线虫寄生赋予的强大再生能力正在复苏这具身体。</description>
<everCurableByItem>false</everCurableByItem>
<recordDownedTale>false</recordDownedTale>
<defaultLabelColor>(0.6, 0.4, 0.8)</defaultLabelColor>
<stages>
<li>
<painFactor>0</painFactor>
<capMods>
<li><capacity>Moving</capacity><postFactor>0</postFactor></li>
<li><capacity>Manipulation</capacity><postFactor>0</postFactor></li>
<li><capacity>Talking</capacity><postFactor>0</postFactor></li>
<li><capacity>Consciousness</capacity><setMax>0.1</setMax></li>
</capMods>
</li>
</stages>
</HediffDef>
<HediffDef>
<defName>ARA_MimicNematodeShamblerShamblerCorpse</defName>
<label>拟线种寄生体尸体</label>
<description>这具身体刚刚被阿拉克涅拟线种寄生"复活"过。</description>
<forceRemoveOnResurrection>true</forceRemoveOnResurrection>
<defaultLabelColor>(0.6, 0.4, 0.8)</defaultLabelColor>
<renderNodeProperties>
<li Class="PawnRenderNodeProperties_Overlay">
<debugLabel>Shambler wounds</debugLabel>
<workerClass>PawnRenderNodeWorker_OverlayShambler</workerClass>
<overlayLayer>Body</overlayLayer>
<baseLayer>20</baseLayer>
<pawnType>HumanlikeOnly</pawnType>
</li>
<li>
<debugLabel>Shambler wounds</debugLabel>
<nodeClass>PawnRenderNode_AnimalPart</nodeClass>
<workerClass>PawnRenderNodeWorker_OverlayShambler</workerClass>
<overlayLayer>Body</overlayLayer>
<baseLayer>20</baseLayer>
<pawnType>NonHumanlikeOnly</pawnType>
</li>
</renderNodeProperties>
</HediffDef>
</Defs>

View File

@@ -0,0 +1,146 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<MutantDef ParentName="BaseMutantEntity">
<defName>ARA_MimicNematodeShambler</defName>
<label>阿拉克涅拟线种寄生体</label>
<description>阿拉克涅拟线种是虫群中最神秘的分支之一。它们与原虫种同源,但在进化之路上并未发展出高级智慧,而是走向了一条截然不同的道路:寄生。拟线种是无法脱离宿主独立存活的寄生虫。一旦寄生于生物体内,它们会长期潜伏,最终逐步接管宿主的神经与代谢系统,将其变为受其操控的行尸走肉——“寄生体”。得益于超凡的细胞复制与再生能力,拟线种能够模仿并替代宿主的细胞结构,这使得寄生体拥有了惊人的自我修复能力。然而,这种寄生关系也极具侵略性:拟线种的虫卵遍布寄生体体表,任何被寄生体攻击的生物都有可能被感染,最终沦为新的寄生体。尽管拟线虫将寄生体的新陈代谢维持在极低水平,但寄生体本身并不会主动觅食。因此,当能量耗尽后,它们终将迎来“死亡”。</description>
<hediff>ARA_MimicNematodeShambler</hediff>
<thinkTree>Shambler</thinkTree>
<thinkTreeConstant>ShamblerConstant</thinkTreeConstant>
<hideLabel>true</hideLabel>
<namePrefix>拟线种寄生体 </namePrefix>
<useCorpseGraphics>false</useCorpseGraphics>
<isConsideredCorpse>true</isConsideredCorpse>
<bloodDef>Filth_DarkBlood</bloodDef>
<bloodSmearDef>Filth_DarkBloodSmear</bloodSmearDef>
<entitledToMedicalCare>false</entitledToMedicalCare>
<removeAllInjuries>true</removeAllInjuries>
<restoreLegs>true</restoreLegs>
<defaultFaction>Entities</defaultFaction>
<standingAnimation>ShamblerSway</standingAnimation>
<canOpenDoors>false</canOpenDoors>
<makesFootprints>false</makesFootprints>
<tameable>false</tameable>
<clearMutantStatusOnDeath>true</clearMutantStatusOnDeath>
<canTravelInCaravan>false</canTravelInCaravan>
<canAttackWhileCrawling>true</canAttackWhileCrawling>
<respectsAllowedArea>false</respectsAllowedArea>
<disableFlying>true</disableFlying>
<canGainXP>false</canGainXP>
<canBeDrafted>false</canBeDrafted>
<disableHostilityResponse>true</disableHostilityResponse>
<deathOnDownedChance>0.25</deathOnDownedChance>
<woundColor>(0.3, 0.3, 0.0, 1.0)</woundColor>
<anomalyKnowledgeOffset>0</anomalyKnowledgeOffset>
<knowledgeCategory>Basic</knowledgeCategory>
<!--<codexEntry>Shambler</codexEntry>-->
<!-- Sounds -->
<soundAttackChance>0.25</soundAttackChance>
<soundCall>Pawn_Shambler_Call</soundCall>
<soundAttack>Pawn_Shambler_Attack</soundAttack>
<soundWounded>Pawn_Shambler_Wounded</soundWounded>
<soundDeath>Pawn_Shambler_Killed</soundDeath>
<removesHediffs>
<li>ARA_MimicNematode</li>
</removesHediffs>
<!-- Rendering -->
<renderNodeProperties>
<li Class="PawnRenderNodeProperties_Overlay">
<debugLabel>Shambler wounds</debugLabel>
<workerClass>PawnRenderNodeWorker_OverlayShambler</workerClass>
<overlayLayer>Body</overlayLayer>
<baseLayer>20</baseLayer>
<pawnType>HumanlikeOnly</pawnType>
</li>
<li>
<debugLabel>Shambler wounds</debugLabel>
<nodeClass>PawnRenderNode_AnimalPart</nodeClass>
<workerClass>PawnRenderNodeWorker_OverlayShambler</workerClass>
<overlayLayer>Body</overlayLayer>
<baseLayer>20</baseLayer>
<pawnType>NonHumanlikeOnly</pawnType>
</li>
</renderNodeProperties>
<tools>
<li>
<label>撕咬</label>
<capacities>
<li>ARA_MimicNematodeShamblerBite</li>
</capacities>
<power>8.2</power>
<cooldownTime>2</cooldownTime>
<linkedBodyPartsGroup>Teeth</linkedBodyPartsGroup>
<chanceFactor>1</chanceFactor>
<soundMeleeHit>Pawn_Melee_HumanBite_Hit</soundMeleeHit>
<soundMeleeMiss>Pawn_Melee_HumanBite_Miss</soundMeleeMiss>
</li>
<li>
<label>巨镰</label>
<capacities>
<li>Cut</li>
</capacities>
<power>15</power>
<cooldownTime>2.5</cooldownTime>
<linkedBodyPartsGroup>LeftHand</linkedBodyPartsGroup>
<!-- <ensureLinkedBodyPartsGroupAlwaysUsable>true</ensureLinkedBodyPartsGroupAlwaysUsable> -->
<chanceFactor>0.5</chanceFactor>
<alwaysTreatAsWeapon>true</alwaysTreatAsWeapon>
</li>
<li>
<label>巨镰</label>
<capacities>
<li>Cut</li>
</capacities>
<power>15</power>
<cooldownTime>2.5</cooldownTime>
<linkedBodyPartsGroup>RightHand</linkedBodyPartsGroup>
<!-- <ensureLinkedBodyPartsGroupAlwaysUsable>true</ensureLinkedBodyPartsGroupAlwaysUsable> -->
<chanceFactor>0.5</chanceFactor>
<alwaysTreatAsWeapon>true</alwaysTreatAsWeapon>
</li>
</tools>
</MutantDef>
<ToolCapacityDef>
<defName>ARA_MimicNematodeShamblerBite</defName>
<label>撕咬</label>
</ToolCapacityDef>
<ManeuverDef>
<defName>ARA_MimicNematodeShamblerBite</defName>
<requiredCapacity>ARA_MimicNematodeShamblerBite</requiredCapacity>
<verb>
<verbClass>Verb_MeleeAttackDamage</verbClass>
<meleeDamageDef>ARA_MimicNematodeBite</meleeDamageDef>
</verb>
<logEntryDef>MeleeAttack</logEntryDef>
<combatLogRulesHit>Maneuver_Slash_MeleeHit</combatLogRulesHit>
<combatLogRulesDeflect>Maneuver_Slash_MeleeDeflect</combatLogRulesDeflect>
<combatLogRulesMiss>Maneuver_Slash_MeleeMiss</combatLogRulesMiss>
<combatLogRulesDodge>Maneuver_Slash_MeleeDodge</combatLogRulesDodge>
</ManeuverDef>
<PawnKindDef ParentName="MutantBase" Name="ARA_ShamblerBase" Abstract="True">
<mutant>ARA_MimicNematodeShambler</mutant>
<generateInitialNonFamilyRelations>false</generateInitialNonFamilyRelations>
</PawnKindDef>
<PawnKindDef ParentName="ARA_ShamblerBase">
<defName>ARA_MimicNematodeShamblerSwarmer</defName>
<label>阿拉克涅拟线种寄生体</label>
<combatPower>40</combatPower>
<gearHealthRange>0.2~0.4</gearHealthRange>
<itemQuality>Poor</itemQuality>
<apparelMoney>0~100</apparelMoney>
<apparelAllowHeadgearChance>0</apparelAllowHeadgearChance>
<apparelTags>
<li>IndustrialBasic</li>
<li>Neolithic</li>
</apparelTags>
<meleeAttackInfectionPathways>
<li>EntityAttacked</li>
</meleeAttackInfectionPathways>
</PawnKindDef>
</Defs>

View File

@@ -564,4 +564,68 @@
</li>
</comps>
</ThingDef>
<ThingDef ParentName="BaseMeleeWeapon_Sharp_Quality">
<defName>ARA_MW_Mimic_Niddle</defName>
<label>武装器官"拟线种毒针"</label>
<description>阿拉克涅虫群督虫使用基础近战武装器官,通过多根外露神经束与督虫的辅肢相连。这根毒针中藏有休眠中的阿拉克涅拟线种虫卵,攻击将感染受害者使其最终成为被拟线虫操控的寄生体。</description>
<weaponTags>
<li>ARA_Armed_Organ</li>
<li>ARA_Armed_Organ_Melee</li>
<li>ARA_Armed_Organ_T1</li>
</weaponTags>
<graphicData>
<texPath>ArachnaeSwarm/Weapon/ARA_MW_Bone_Sword</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>CutoutComplex</shaderType>
<drawSize>1</drawSize>
</graphicData>
<uiIconScale>1</uiIconScale>
<!-- <equippedAngleOffset>-65</equippedAngleOffset> -->
<techLevel>Animal</techLevel>
<!-- <equippedAngleOffset>-25</equippedAngleOffset> -->
<costStuffCount>0</costStuffCount>
<stuffCategories Inherit="False"/>
<costList Inherit="False">
<ARA_Carapace>50</ARA_Carapace>
</costList>
<statBases>
<WorkToMake>1000</WorkToMake>
<Mass>5</Mass>
</statBases>
<tools Inherit="False">
<li>
<label></label>
<capacities>
<li>Cut</li>
</capacities>
<power>15</power>
<cooldownTime>1.3</cooldownTime>
<armorPenetration>0.50</armorPenetration>
</li>
<li>
<label></label>
<capacities>
<li>Poke</li>
</capacities>
<power>12</power>
<armorPenetration>0.20</armorPenetration>
<cooldownTime>1.5</cooldownTime>
<extraMeleeDamages>
<li>
<def>ARA_MimicNematodeBite</def>
<amount>4</amount>
</li>
</extraMeleeDamages>
</li>
</tools>
<recipeMaker>
<recipeUsers Inherit="False" />
<researchPrerequisite Inherit="False" />
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
</ThingDef>
</Defs>