// спавн продуктов разложения public void SpawnDecompositionProductsSelfDestroy() { // визуалочка Vector3 position = master.transform.GetPosition(); KBatchedAnimController kbacFX = FXHelpers.CreateEffect("decomposition_corpse_fx_kanim", position, null, false, Grid.SceneLayer.FXFront, false); kbacFX.Play("idle", KAnim.PlayMode.Once); kbacFX.destroyOnAnimComplete = true; // морбы if (!IsSubmerged()) { Vector3 position_morb = Grid.CellToPos(Grid.PosToCell(position)); for (int i = 0; i < countRotMonsters; i++) { GameObject morb = GameUtil.KInstantiate(Assets.GetPrefab("Glom".ToTag()), position_morb, Grid.SceneLayer.Creatures); morb.SetActive(true); //PopFXManager.Instance.SpawnFX(PopFXManager.Instance.sprite_Resource, morb.name, morb.transform); } } // скелетон position.y += 0.5f; GameObject skeleton = GameUtil.KInstantiate(Assets.GetPrefab(SkeletonConfig.TAG), position, Grid.SceneLayer.Ore); skeleton.SetActive(true); skeleton.GetComponent <PrimaryElement>().Temperature = temperature; // эффект на всех живых дуплов EffectsExtensions.AddEffectToAllLiveMinions(DeathPatches.DESTROYED_CORPSE, true, true); // удаляем труп Util.KDestroyGameObject(master.gameObject); }
private static bool Prefix(object data) { Debug.LogFormat("OnDeath {0}", new object[] { data }); EffectsExtensions.AddEffectToAllLiveMinions(MOURNING, true, true); return(false); }