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