Example #1
0
        public void StartEffect(string name, bool isUnique = false)
        {
            if (IsDestroyed)
            {
                return;
            }
            else
            {
            }

            if (mEffectActived.Contains(name))
            {
                if (isUnique)
                {
                    return;
                }
                else
                {
                }
            }
            else
            {
                mEffectActived.Add(name);
            }
            GridEffect effect = mEffectMapper[name];

            effect?.Commit(this);
        }
Example #2
0
        public void StopEffect(string name)
        {
            if (mEffectActived.Contains(name))
            {
                mEffectActived.Remove(name);
            }
            else
            {
                return;
            }

            GridEffect effect = mEffectMapper[name];

            effect?.Stop(this);
        }
Example #3
0
        public void Clean()
        {
            int max = Effects.Size;

            for (int i = 0; i < max; i++)
            {
                Effects.Values[i].Clear();
            }

            Effects.Clear();
            Effects = default;

            OnGridCreateAndEnters  = default;
            OnGridEffectsIdleState = default;
            mEnterEffect           = default;
            mRemainsEffect         = default;
        }
Example #4
0
        private bool CheckCreateOrEnterEffectExistable(bool conditionWithFinished, int remainsEnter = 0, int remainsCreate = 0)
        {
            if (mEnterEffect == default)
            {
                mEnterEffect = Effects[EffectEnter];
            }
            else
            {
            }

            if (mRemainsEffect == default)
            {
                mRemainsEffect = Effects[EffectRemains];
            }
            else
            {
            }

            int  enterCount  = mEnterEffect.EffectCount;
            int  createCount = mRemainsEffect.EffectCount;
            bool result      = conditionWithFinished ?
                               (enterCount == remainsEnter) && (createCount == remainsCreate) :
                               (enterCount > remainsEnter) || (createCount > remainsCreate);

#if LOG_GAME_EFFECTS
            if (result)
            {
                "log:Grid enter effect count {0}".Log(enterCount.ToString());
                "log:Grid create effect count {0}".Log(createCount.ToString());
                "log:Grid effect {0}".Log(isFinished ? "all played" : "still play");
            }
            else
            {
            }
#endif
            return(result);
        }
Example #5
0
 public void SetEffect(string name, GridEffect target)
 {
     Effects[name] = target;
 }
Example #6
0
 /// <summary>
 /// 追加特效(其他消除格将共享此追加的特效)
 /// </summary>
 /// <param name="name"></param>
 /// <param name="effect"></param>
 public void AddEffect(string name, GridEffect effect)
 {
     mEffectMapper[name] = effect;
     effect.Commit(this, false);
 }