diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll
index 889af9c..83a59e0 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 90e4371..8acf8bb 100644
--- a/1.6/1.6/Defs/AbilityDefs/ARA_Possession_Defs.xml
+++ b/1.6/1.6/Defs/AbilityDefs/ARA_Possession_Defs.xml
@@ -21,6 +21,10 @@
+
+ CompAbilityEffect_GiveHediff
+ ARA_HiveMindDrone
+
diff --git a/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Possession.xml b/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Possession.xml
index b2252d6..bf7db93 100644
--- a/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Possession.xml
+++ b/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Possession.xml
@@ -57,6 +57,9 @@
+
+
+
\ No newline at end of file
diff --git a/Source/ArachnaeSwarm/ARA_HiveMind/Hediff_HiveMindDrone.cs b/Source/ArachnaeSwarm/ARA_HiveMind/Hediff_HiveMindDrone.cs
index 87760f0..6a141f8 100644
--- a/Source/ArachnaeSwarm/ARA_HiveMind/Hediff_HiveMindDrone.cs
+++ b/Source/ArachnaeSwarm/ARA_HiveMind/Hediff_HiveMindDrone.cs
@@ -42,18 +42,7 @@ namespace ArachnaeSwarm
{
get
{
- // Only remove if base ShouldRemove is true, OR if pawn is dead
- // We do NOT want to remove it just because target is invalid, as the Comp will handle delayed death
- if (base.ShouldRemove && pawn.Dead)
- {
- return true;
- }
- // Also remove if pawn is no longer spawned or on a map
- if (!pawn.Spawned || pawn.Map == null)
- {
- return true;
- }
- return false; // Let the Comp handle the unlinked death
+ return this.pawn.Dead;
}
}
@@ -61,8 +50,7 @@ namespace ArachnaeSwarm
{
base.PostRemoved();
// Deregister from the master when this hediff is removed
- // Ensure target is a Pawn and not dead before attempting to deregister
- if (this.target is Pawn master && master != null && !master.Destroyed && !master.Dead)
+ if (this.target is Pawn master && master != null && !master.Destroyed)
{
var masterHediff = master.health.hediffSet.GetFirstHediffOfDef(HediffDef.Named("ARA_HiveMindMaster")) as Hediff_HiveMindMaster;
masterHediff?.DeregisterDrone(this.pawn);
diff --git a/Source/ArachnaeSwarm/ARA_HiveMind/Hediff_HiveMindMaster.cs b/Source/ArachnaeSwarm/ARA_HiveMind/Hediff_HiveMindMaster.cs
index 2558b1e..50f49f2 100644
--- a/Source/ArachnaeSwarm/ARA_HiveMind/Hediff_HiveMindMaster.cs
+++ b/Source/ArachnaeSwarm/ARA_HiveMind/Hediff_HiveMindMaster.cs
@@ -11,6 +11,8 @@ namespace ArachnaeSwarm
public override string LabelInBrackets => drones.Count.ToString();
+ public override bool ShouldRemove => false;
+
public override void ExposeData()
{
base.ExposeData();