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();