This commit is contained in:
2025-09-04 21:12:22 +08:00
parent 0982682cc9
commit 3df5314d4e
5 changed files with 8 additions and 6 deletions

Binary file not shown.

View File

@@ -6,8 +6,8 @@
<defName>ARA_Ability_Possess</defName>
<label>阿拉克涅寄生</label>
<description>将你的意识注入另一个生物的身体,完全占据它。</description>
<iconPath>UI/Abilities/Possess</iconPath>
<cooldownTicks>600</cooldownTicks>
<iconPath>UI/Commands/EggSpew</iconPath>
<cooldownTicksRange>600</cooldownTicksRange>
<verbProperties>
<verbClass>Verb_CastAbility</verbClass>
<warmupTime>1.5</warmupTime>

View File

@@ -522,7 +522,7 @@
</race>
<!-- 工具设置(攻击方式) -->
<tools>
<tools Inherit="False"><!-- 必须写禁止继承不然会把HUMANLIKE的攻击方式继承过来导致红字找不到部件报错 -->
<li>
<label>头颚</label>
<capacities>

View File

@@ -17,7 +17,7 @@
</li>
</backstoryFiltersOverride>
<abilities>
<li>ARA_Facehugger</li>
<li>ARA_Ability_Possess</li>
</abilities>
<apparelTags>
</apparelTags>

View File

@@ -38,7 +38,9 @@ namespace ArachnaeSwarm
return;
}
this.innerContainer.TryAdd(this.originalCaster);
// 正确的做法:从原始施法者身上“分裂”出一个副本存入容器
// 这确保了容器里的是一个独立的对象,而不是一个会被销毁的引用
this.innerContainer.TryAdd(this.originalCaster.SplitOff(1), true);
PawnDataUtility.TransferSoul(this.originalCaster, this.pawn);
if (!this.originalCaster.Destroyed)
@@ -84,7 +86,7 @@ namespace ArachnaeSwarm
{
base.ExposeData();
Scribe_Deep.Look(ref innerContainer, "innerContainer", this);
Scribe_References.Look(ref originalCaster, "originalCaster");
Scribe_References.Look(ref originalCaster, "originalCaster", false);
}
}
}