コード例 #1
0
            // спавн продуктов разложения
            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);
            }
コード例 #2
0
 private static bool Prefix(object data)
 {
     Debug.LogFormat("OnDeath {0}", new object[] { data });
     EffectsExtensions.AddEffectToAllLiveMinions(MOURNING, true, true);
     return(false);
 }