Example #1
0
        private static LSEffect GenEffect(EffectCode effectCode, int id = -1)
        {
            FastStack <LSEffect> pool   = EffectPool[effectCode];
            LSEffect             effect = null;

            if (pool.Count > 0)
            {
                effect = pool.Pop();
            }
            else
            {
                Debug.Log(effectCode);
                EffectDataItem dataItem = CodeDataMap[effectCode];
                effect = GameObject.Instantiate <GameObject> (dataItem.Prefab).GetComponent <LSEffect> ();
                effect.Setup(effectCode);
            }

            if (id == -1)
            {
                id = GenerateID();
            }
            if (effect.Create(id))
            {
                return(effect);
            }
            else
            {
                return(GenEffect(effectCode, id));
            }
        }
Example #2
0
 public static void Setup()
 {
     EffectDataItem[] effectData = LSDatabaseManager.CurrentDatabase.EffectData;
     EffectPool  = new Dictionary <EffectCode, FastStack <LSEffect> >(effectData.Length);
     CodeDataMap = new Dictionary <EffectCode, EffectDataItem>(effectData.Length);
     for (int i = 0; i < effectData.Length; i++)
     {
         EffectDataItem dataItem = effectData[i];
         EffectCode     code     = (EffectCode)dataItem.MappedCode;
         EffectPool.Add(code, new FastStack <LSEffect> ());
         CodeDataMap.Add(code, dataItem);
     }
 }
 public static void Setup()
 {
     EffectDataItem[] effectData = (LSDatabaseManager.CurrentDatabase as DefaultLSDatabase).EffectData;
     EffectPool  = new Dictionary <string, FastStack <LSEffect> >(effectData.Length);
     CodeDataMap = new Dictionary <string, EffectDataItem>(effectData.Length);
     for (int i = 0; i < effectData.Length; i++)
     {
         EffectDataItem dataItem = effectData[i];
         string         code     = (string)dataItem.Name;
         EffectPool.Add(code, new FastStack <LSEffect> ());
         CodeDataMap.Add(code, dataItem);
     }
 }