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); }
public void StopEffect(string name) { if (mEffectActived.Contains(name)) { mEffectActived.Remove(name); } else { return; } GridEffect effect = mEffectMapper[name]; effect?.Stop(this); }
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; }
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); }
public void SetEffect(string name, GridEffect target) { Effects[name] = target; }
/// <summary> /// 追加特效(其他消除格将共享此追加的特效) /// </summary> /// <param name="name"></param> /// <param name="effect"></param> public void AddEffect(string name, GridEffect effect) { mEffectMapper[name] = effect; effect.Commit(this, false); }