// труп изъят из стораге - вернуть все как было // а также корректируем позицию чтобы не зависал в воздухе private static void UnHideCorpse(DeathMonitor.Instance smi) { MinionIdentity mi = smi.GetComponent <MinionIdentity>(); if (mi != null) { if (!Components.MinionIdentities.Items.Contains(mi)) { Components.MinionIdentities.Add(mi); } MinionAssignablesProxy map = mi.assignableProxy.Get(); if (map != null && !Components.MinionAssignablesProxy.Items.Contains(map)) { Components.MinionAssignablesProxy.Add(map); } } Transform transform = smi.master.transform; Vector3 position = Grid.CellToPos(Grid.PosToCell(transform.GetPosition())); position.z = transform.GetPosition().z; transform.SetPosition(position); Debug.Log("UnHideCorpse"); //NameDisplayScreen.Instance.entries.Find(entry => entry.world_go == smi.gameObject)?.display_go.SetActive(true); //NameDisplayScreen.Instance.entries.Find(entry => entry.world_go == smi.gameObject).display_go.GetComponent<KBatchedAnimController>().sceneLayer = Grid.SceneLayer.Move; }
// TODO: нужно разобраться с отображением имён закопанных трупов // труп сохранён в стораге - удаляем ссылки на труп из глобальных списков // и ещё раз отменяем все назначения private static void HideCorpse(DeathMonitor.Instance smi) { MinionIdentity mi = smi.GetComponent <MinionIdentity>(); if (mi != null) { Components.MinionIdentities.Remove(mi); MinionAssignablesProxy map = mi.assignableProxy.Get(); if (map != null) { Components.MinionAssignablesProxy.Remove(map); } mi.GetSoleOwner().UnassignAll(); mi.GetEquipment().UnequipAll(); } Debug.Log("HideCorpse"); //NameDisplayScreen.Instance.entries.Find(entry => entry.world_go == smi.gameObject)?.display_go.SetActive(false); //Debug.Log(NameDisplayScreen.Instance.entries.Find(entry => entry.world_go == smi.gameObject)?.display_go.name); //NameDisplayScreen.Instance.entries.Find(entry => entry.world_go == smi.gameObject).display_go.GetComponent<KBatchedAnimController>().sceneLayer = Grid.SceneLayer.NoLayer; }