public ItemValueRange GetValue(ItemAttributes attributes) { ItemValueRange value; if (refAttribute == null) { value = attributes.GetAttributeByName(targetAttribute); } else { value = attributes.GetAttributeByName(targetAttribute) + attributes.GetAttributeByName(refAttribute); } if (Percent) { value *= 100; } return value; }
public void SetValue(ItemAttributes attributes, double value) { if (Percent) { value /= 100; } if (refAttribute == null) { attributes.SetAttributeByName(targetAttribute, new ItemValueRange(value)); } else { attributes.SetAttributeByName(targetAttribute, new ItemValueRange(value) - attributes.GetAttributeByName(refAttribute)); } }
/// <summary> /// /// </summary> /// <param name="itemAttributes"></param> /// <param name="heroClass"></param> /// <remarks>No more damage malus applied on followers since Reaper of Souls.</remarks> private void ApplyFollowersBonusMalusOnItemAttributes(ItemAttributes itemAttributes, HeroClass heroClass) { itemAttributes.dexterityItem *= 2.5; itemAttributes.intelligenceItem *= 2.5; itemAttributes.strengthItem *= 2.5; itemAttributes.vitalityItem *= 2.5; foreach (var resist in DamageResists) { foreach (var damage in DamagePrefixes) { var value = itemAttributes.GetAttributeByName(damage + resist); itemAttributes.SetAttributeByName(damage + resist, value); } } }