public LiveCooldownDurationEffect(ADurationEffect durationEffect) { DurationEffect = durationEffect; MaxDuration = durationEffect.Duration; CurrentDuration = MaxDuration; CurrentStacks = 1; }
private void ApplyEffectInternal(List <LiveCooldownDurationEffect> liveList, ADurationEffect durationEffect) { LiveCooldownDurationEffect effect = GetDurationEffectFromLiveList(liveList, durationEffect); if (effect != null) { AddStackToLiveEffect(effect); } else { AddNewLiveEffect(liveList, durationEffect); } }
private void RemoveEffectInternal(List <LiveCooldownDurationEffect> liveList, ADurationEffect durationEffect) { LiveCooldownDurationEffect effect = GetDurationEffectFromLiveList(liveList, durationEffect); if (effect != null) { if (effect.CurrentStacks == 1) { RemoveLiveEffect(liveList, effect); } else { RemoveStackFromLiveEffect(effect); } } }
protected virtual void AddNewLiveEffect(List <LiveCooldownDurationEffect> liveList, ADurationEffect durationEffect) { durationEffect.SetOwner(ownerDamagableObject); liveList.Add(new LiveCooldownDurationEffect(durationEffect)); durationEffect.StartPersistentEffect(); }
public void RemoveEffect(ADurationEffect durationEffect) { RemoveEffectInternal(allEffects, durationEffect); }
public void ApplyEffect(ADurationEffect durationEffect) { ApplyEffectInternal(allEffects, durationEffect); durationEffect.OnApplicationAndRefresh(); }
protected LiveCooldownDurationEffect GetDurationEffectFromLiveList(List <LiveCooldownDurationEffect> liveList, ADurationEffect durationEffect) { foreach (LiveCooldownDurationEffect liveEffect in liveList) { if (liveEffect.DurationEffect.Equals(durationEffect)) { return(liveEffect); } } return(null); }
protected override void AddNewLiveEffect(List <LiveCooldownDurationEffect> liveList, ADurationEffect durationEffect) { base.AddNewLiveEffect(liveList, durationEffect); GameObject nEffect = Instantiate(durationEffectUiPrefab, effectsGrid.transform); nEffect.GetComponent <UiDurationEffectNode>().RootLiveEffect = GetDurationEffectFromLiveList(liveList, durationEffect); nEffect.GetComponent <UiDurationEffectNode>().SetEffectImageSprite(durationEffect.Icon); }