Ejemplo n.º 1
0
    public static void RemoveEffect(PlayerStatusEffect effect)
    {
        if (effect == null || !statusEffects[effect.ID].Contains(effect))
        {
            return;
        }

        effect.OnEnd();
        statusEffects[effect.ID].Remove(effect);
    }
Ejemplo n.º 2
0
    public static void AddEffect(PlayerStatusEffect effect)
    {
        if (!statusEffects.ContainsKey(effect.ID))
        {
            statusEffects.Add(effect.ID, new List <PlayerStatusEffect>());
        }

        List <PlayerStatusEffect> effects = statusEffects[effect.ID];

        if (effects.Contains(effect))
        {
            return;
        }

        effects.Add(effect);
        effect.OnStart();
    }
Ejemplo n.º 3
0
        public PlayerStatusEffect UpdateAndGetPlayerStatusEffect(int index, float?currentTime, bool isConditionPassed)
        {
            PlayerStatusEffect playerStatusEffect = StatusEffects.SingleOrDefault(statusEffect => statusEffect.Index == index);

            if (playerStatusEffect == null && isConditionPassed)
            {
                playerStatusEffect = new PlayerStatusEffect(index, currentTime, currentTime, isConditionPassed);
                StatusEffects.Add(playerStatusEffect);
            }
            else if (playerStatusEffect != null)
            {
                if (currentTime.HasValue)
                {
                    playerStatusEffect.Time.Current = currentTime.Value;
                }

                playerStatusEffect.IsConditionPassed = isConditionPassed;
            }

            return(playerStatusEffect);
        }