Ejemplo n.º 1
0
    public void RemoveModificator(BaseModificator modificator)
    {
        modificators.Remove(modificator);

        if (modificator.Type == ModificatorType.Multiplaer)
        {
            FinalValue /= modificator.Value;
            TimeModificator temp = (TimeModificator)modificator;
            if (temp != null && temp.IsMax)
            {
                maxValue /= modificator.Value;
            }
        }

        if (modificator is TimeModificator)
        {
            (modificator as TimeModificator).OnTimeEnd -= OnEnd;
        }
        if (modificator is TimeChangeModificator)
        {
            (modificator as TimeChangeModificator).OnValueChange -= ValueChange;
        }

        if (OnRemoveModificator != null)
        {
            OnRemoveModificator(modificator);
        }
    }
Ejemplo n.º 2
0
    public void AddModificator(BaseModificator modificator)
    {
        if (modificator is TimeModificator)
        {
            (modificator as TimeModificator).OnTimeEnd += OnEnd;
            (modificator as TimeModificator).Start();
        }
        if (modificator is TimeChangeModificator)
        {
            (modificator as TimeChangeModificator).OnValueChange += ValueChange;
        }

        if (modificator.Type == ModificatorType.Multiplaer)
        {
            TimeModificator temp = (TimeModificator)modificator;
            if (temp != null && temp.IsMax)
            {
                maxValue *= modificator.Value;
            }
            FinalValue *= modificator.Value;
        }

        if (modificator.GetType() != typeof(BaseModificator))
        {
            modificators.Add(modificator);
            if (OnAddModificator != null)
            {
                OnAddModificator(modificator);
            }
        }
        else
        {
            if (modificator.Type == ModificatorType.Additive)
            {
                FinalValue += modificator.Value;
            }
        }
    }