예제 #1
0
파일: Tower.cs 프로젝트: 1010MMR/Portfolio
    public void Sell()
    {
        StopAllCoroutines();

        SpriteEffect effect = null;

        if (PoolManager.Instance != null && PoolManager.Instance.GetEffectFromPool((int)EffectTable.eEffectType.Type_Tower_Sell, out effect))
        {
            effect.Init(transform);
        }
        else
        {
            EffectTable.TableRow effectTable = null;
            if (EffectTable.Instance.FindTable((int)EffectTable.eEffectType.Type_Tower_Sell, out effectTable))
            {
                LoadAssetbundle.LoadPrefabCB loadPrefabCB = new LoadAssetbundle.LoadPrefabCB(LoadDestroyEffectCompleteCB);
                PrefabManager.Instance.LoadPrefab(effectTable.effectPath, System.Guid.NewGuid(), loadPrefabCB, effectTable);
            }
        }

        if (TowerManager.Instance != null)
        {
            TowerManager.Instance.RemoveTowerList(this);
        }

        if (PoolManager.Instance != null)
        {
            PoolManager.Instance.AddTowerPool(this);
        }
        if (GameManager.Instance != null)
        {
            GameManager.Instance.AddGameGold(status.GetSellPrice);
        }
    }
예제 #2
0
    private void SetDamageEffect(DamageParam param)
    {
        SpriteEffect effect = null;

        if (PoolManager.Instance != null && PoolManager.Instance.GetEffectFromPool(param.GetDamageEffectID, out effect))
        {
            effect.Init(effectDummy);
        }
        else
        {
            EffectTable.TableRow effectTable = null;
            if (EffectTable.Instance.FindTable(param.GetDamageEffectID, out effectTable))
            {
                LoadAssetbundle.LoadPrefabCB loadDamageEffectPrefabCB = new LoadAssetbundle.LoadPrefabCB(LoadDamageEffectCompleteCB);
                PrefabManager.Instance.LoadPrefab(effectTable.effectPath, System.Guid.NewGuid(), loadDamageEffectPrefabCB, effectTable);
            }
        }
    }