private static void Prefix(Demolishable __instance) { if (__instance != null && !destroyed.Get(__instance)) { // лутаемые объекты типа шкафчиков var setLocker = __instance.GetComponent <SetLocker>(); // if (!setLocker.used) setLocker.CompleteChore(); if (setLocker != null && !used.Get(setLocker)) { CompleteChore.Invoke(setLocker); } // объекты которые можно "осмотреть", запись в кодекс var loreBearer = __instance.GetComponent <LoreBearer>(); // if (!loreBearer.BeenClicked) loreBearer.OnClickRead(); if (loreBearer != null && !BeenClicked.Get(loreBearer)) { OnClickRead.Invoke(loreBearer); } // калибратор. если не использован - нужно дропнуть зарядник var geneShuffler = __instance.GetComponent <GeneShuffler>(); if (geneShuffler != null && !geneShuffler.IsConsumed) { geneShuffler.IsConsumed = true; Scenario.SpawnPrefab(Grid.PosToCell(__instance), dropOffset.x, dropOffset.y, GeneShufflerRechargeConfig.ID, Grid.SceneLayer.Front).SetActive(true); PopFXManager.Instance.SpawnFX(PopFXManager.Instance.sprite_Plus, Assets.GetPrefab(GeneShufflerRechargeConfig.ID.ToTag()).GetProperName(), __instance.transform, 1.5f, false); } } }
private static void Prefix(Demolishable __instance) { if (__instance != null && !destroyed.Get(__instance)) { var geneShuffler = __instance.GetComponent <GeneShuffler>(); if (geneShuffler != null) { // если калибратор не использован - нужно дропнуть зарядник if (!geneShuffler.IsConsumed) { geneShuffler.IsConsumed = true; Scenario.SpawnPrefab(Grid.PosToCell(__instance), dropOffset.x, dropOffset.y, GeneShufflerRechargeConfig.ID, Grid.SceneLayer.Front).SetActive(true); PopFXManager.Instance.SpawnFX(PopFXManager.Instance.sprite_Plus, Assets.GetPrefab(GeneShufflerRechargeConfig.ID.ToTag()).GetProperName(), __instance.transform, 1.5f, false); } __instance.GetComponent <BuildedGeneShuffler>()?.SpawnItemsFromConstruction(); } } }