Exemplo n.º 1
0
    /// <summary>
    /// Retorna la cantidad acumulada de un tipo de Debuff.
    /// </summary>
    /// <param name="type">El tipo de debuff del cual queremos sacar la cantidad acumulada.</param>
    public int GetActiveDebuffAmmount(DeBuffType type, bool LimitedAndPermanent = false)
    {
        if (ActiveDebuffs.Keys.Count == 0)
        {
            ActiveDebuffs.Add(EffectDurationType.Limited, new List <DeBuff>());
            ActiveDebuffs.Add(EffectDurationType.Permanent, new List <DeBuff>());
        }

        int Acumulated = ActiveDebuffs[EffectDurationType.Limited]
                         .Where(db => db.DebuffType == type)
                         .Select(db => db.Ammount)
                         .Sum();

        if (LimitedAndPermanent)
        {
            int permanent = ActiveDebuffs[EffectDurationType.Permanent]
                            .Where(db => db.DebuffType == type)
                            .Select(db => db.Ammount)
                            .Sum();
            Acumulated += permanent;
        }

        return(Acumulated);
    }
Exemplo n.º 2
0
 public DeBuff GetDebuff(DeBuffType deBuffType)
 {
     return(Debuffs.Where(b => b.DebuffType == deBuffType).FirstOrDefault());
 }