public LiveCooldownDurationEffect(ADurationEffect durationEffect)
 {
     DurationEffect  = durationEffect;
     MaxDuration     = durationEffect.Duration;
     CurrentDuration = MaxDuration;
     CurrentStacks   = 1;
 }
Beispiel #2
0
    private void ApplyEffectInternal(List <LiveCooldownDurationEffect> liveList, ADurationEffect durationEffect)
    {
        LiveCooldownDurationEffect effect = GetDurationEffectFromLiveList(liveList, durationEffect);

        if (effect != null)
        {
            AddStackToLiveEffect(effect);
        }
        else
        {
            AddNewLiveEffect(liveList, durationEffect);
        }
    }
Beispiel #3
0
    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);
            }
        }
    }
Beispiel #4
0
 protected virtual void AddNewLiveEffect(List <LiveCooldownDurationEffect> liveList, ADurationEffect durationEffect)
 {
     durationEffect.SetOwner(ownerDamagableObject);
     liveList.Add(new LiveCooldownDurationEffect(durationEffect));
     durationEffect.StartPersistentEffect();
 }
Beispiel #5
0
 public void RemoveEffect(ADurationEffect durationEffect)
 {
     RemoveEffectInternal(allEffects, durationEffect);
 }
Beispiel #6
0
 public void ApplyEffect(ADurationEffect durationEffect)
 {
     ApplyEffectInternal(allEffects, durationEffect);
     durationEffect.OnApplicationAndRefresh();
 }
Beispiel #7
0
 protected LiveCooldownDurationEffect GetDurationEffectFromLiveList(List <LiveCooldownDurationEffect> liveList, ADurationEffect durationEffect)
 {
     foreach (LiveCooldownDurationEffect liveEffect in liveList)
     {
         if (liveEffect.DurationEffect.Equals(durationEffect))
         {
             return(liveEffect);
         }
     }
     return(null);
 }
Beispiel #8
0
    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);
    }