diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll index 17fbb9f..4380d07 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/Assemblies/ArachnaeSwarm.pdb b/1.6/1.6/Assemblies/ArachnaeSwarm.pdb index a06cfcb..4e5f047 100644 Binary files a/1.6/1.6/Assemblies/ArachnaeSwarm.pdb and b/1.6/1.6/Assemblies/ArachnaeSwarm.pdb differ diff --git a/Source/ArachnaeSwarm/Buildings/Building_EquipmentOotheca/Building_EquipmentOotheca.cs b/Source/ArachnaeSwarm/Buildings/Building_EquipmentOotheca/Building_EquipmentOotheca.cs index e425fbe..c02f4ca 100644 --- a/Source/ArachnaeSwarm/Buildings/Building_EquipmentOotheca/Building_EquipmentOotheca.cs +++ b/Source/ArachnaeSwarm/Buildings/Building_EquipmentOotheca/Building_EquipmentOotheca.cs @@ -92,6 +92,18 @@ namespace ArachnaeSwarm { base.Tick(); + // 清理无效的幼虫引用 + if (assignedLarva != null) + { + if (assignedLarva.Dead || assignedLarva.Destroyed || + assignedLarva.CurJobDef == null || + assignedLarva.CurJobDef.defName != "ARA_OperateIncubator" || + assignedLarva.CurJob?.targetA.Thing != this) + { + assignedLarva = null; + } + } + if (larvaOperateTicksRemaining > 0) { larvaOperateTicksRemaining--; diff --git a/Source/ArachnaeSwarm/Buildings/Building_Ootheca/Building_Ootheca.cs b/Source/ArachnaeSwarm/Buildings/Building_Ootheca/Building_Ootheca.cs index 60df022..9c2d3fa 100644 --- a/Source/ArachnaeSwarm/Buildings/Building_Ootheca/Building_Ootheca.cs +++ b/Source/ArachnaeSwarm/Buildings/Building_Ootheca/Building_Ootheca.cs @@ -202,6 +202,18 @@ namespace ArachnaeSwarm { base.Tick(); + // 清理无效的幼虫引用 + if (assignedLarva != null) + { + if (assignedLarva.Dead || assignedLarva.Destroyed || + assignedLarva.CurJobDef == null || + assignedLarva.CurJobDef.defName != "ARA_OperateIncubator" || + assignedLarva.CurJob?.targetA.Thing != this) + { + assignedLarva = null; + } + } + if (larvaOperateTicksRemaining > 0) { larvaOperateTicksRemaining--;