diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll
index 3f48b6b..58a9ee5 100644
Binary files a/1.6/1.6/Assemblies/ArachnaeSwarm.dll and b/1.6/1.6/Assemblies/ArachnaeSwarm.dll differ
diff --git a/1.6/1.6/Defs/AbilityDefs/ARA_Possession_Defs.xml b/1.6/1.6/Defs/AbilityDefs/ARA_Possession_Defs.xml
index 993203b..90e4371 100644
--- a/1.6/1.6/Defs/AbilityDefs/ARA_Possession_Defs.xml
+++ b/1.6/1.6/Defs/AbilityDefs/ARA_Possession_Defs.xml
@@ -6,8 +6,8 @@
ARA_Ability_Possess
将你的意识注入另一个生物的身体,完全占据它。
- UI/Abilities/Possess
- 600
+ UI/Commands/EggSpew
+ 600
Verb_CastAbility
1.5
diff --git a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml
index f22c796..94bfddf 100644
--- a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml
+++ b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml
@@ -522,7 +522,7 @@
-
+
diff --git a/1.6/1.6/Defs/ThingDef_Races/ARA_Race_HuggingFaceSwarm.xml b/1.6/1.6/Defs/ThingDef_Races/ARA_Race_HuggingFaceSwarm.xml
index 220a030..f6ca2c5 100644
--- a/1.6/1.6/Defs/ThingDef_Races/ARA_Race_HuggingFaceSwarm.xml
+++ b/1.6/1.6/Defs/ThingDef_Races/ARA_Race_HuggingFaceSwarm.xml
@@ -17,7 +17,7 @@
- ARA_Facehugger
+ ARA_Ability_Possess
diff --git a/Source/ArachnaeSwarm/Possession/Hediff_Possession.cs b/Source/ArachnaeSwarm/Possession/Hediff_Possession.cs
index 34c6e0f..8f8c5b9 100644
--- a/Source/ArachnaeSwarm/Possession/Hediff_Possession.cs
+++ b/Source/ArachnaeSwarm/Possession/Hediff_Possession.cs
@@ -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);
}
}
}
\ No newline at end of file