public override void Destroy(DestroyMode mode = DestroyMode.Vanish) { if (!questTags.NullOrEmpty()) { bool flag = false; List <Thing> list = base.Map.listerThings.ThingsOfDef(def); for (int i = 0; i < list.Count; i++) { Hive hive; if ((hive = (list[i] as Hive)) != null && hive != this && hive.CompDormant.Awake && !hive.questTags.NullOrEmpty() && QuestUtility.AnyMatchingTags(hive.questTags, questTags)) { flag = true; break; } } if (!flag) { QuestUtility.SendQuestTargetSignals(questTags, "AllHivesDestroyed"); } } base.Destroy(mode); }