Beispiel #1
0
    public void RpcAddEffect(PlayerEffect effect)
    {
        // Add it.
        PlayerEffects.Add(effect);

        // Notify event listeners of changes.
        OnPlayerEffectsChanged.Invoke();
        OnPlayerEffectsAdded.Invoke(effect);
    }
Beispiel #2
0
    /// <summary>
    /// Update is called every frame.
    /// </summary>
    private void Update()
    {
        // This is trash. Refactor earlier than 3 a.m.

        // Decrement duration values
        List <PlayerEffect> newPlayerEffectsList = new List <PlayerEffect>();

        foreach (PlayerEffect effect in PlayerEffects)
        {
            // If the duration will be above zero, re-add to the collection. Dump it out otherwise.
            if (effect.duration - Time.deltaTime > 0)
            {
                PlayerEffect modified = new PlayerEffect(effect.effectType, effect.duration - Time.deltaTime, effect.modifierFloat, effect.modifierString);
                newPlayerEffectsList.Add(modified);
            }
            else
            {
                // Notify event listeners of changes.
                OnPlayerEffectsChanged.Invoke();
            }
        }

        PlayerEffects = newPlayerEffectsList;
    }