Esempio n. 1
0
        public List <AttributeModifier> GetAttributeModifiers(int level, float multiplier = 1)
        {
            var modifiers = new List <AttributeModifier>();

            foreach (var attributeModifierCurveData in this.data.Attributes)
            {
                var amount = Curve.Evaluate(
                    level,
                    attributeModifierCurveData.Min,
                    attributeModifierCurveData.Max,
                    attributeModifierCurveData.CurveType) * multiplier;

                amount *= Quality;

                var attributeData = new AttributeModifierData
                {
                    Type   = ModifierType.Flat,
                    Amount = amount
                };

                var attributeModifier = new AttributeModifier(
                    this.attributeRepository.Find(attributeModifierCurveData.AttributeId), attributeData);

                modifiers.Add(attributeModifier);
            }

            modifiers.AddRange(ItemModifiers.SelectMany(m => m.GetAttributeModifiers(level, multiplier)));

            return(modifiers);
        }
Esempio n. 2
0
 public AttributeModifier(Attribute attribute, AttributeModifierData data) : base(data.Amount, data.Type)
 {
     Data      = data;
     Attribute = attribute;
 }
Esempio n. 3
0
 public AttributeModifier Make(AttributeModifierData data)
 {
     return(new AttributeModifier(this.attributeRepository.Find(data.AttributeId), data));
 }