/// <summary> /// Initializes a new instance of the ItemAttributesData class. /// </summary> /// <param name="effectType">effect type enumeration</param> /// <param name="attribute">attribute string</param> /// <param name="effect">effect string</param> /// <param name="variable">variable string</param> /// <param name="suborder">attribute suborder</param> public ItemAttributesData(ItemAttributesEffectType effectType, string attribute, string effect, string variable, int suborder) { this.EffectType = effectType; this.FullAttribute = attribute; this.Effect = effect; this.Variable = variable; this.Suborder = suborder; }
/// <summary> /// Indicates whether an effect type is part of a particular attribute group /// </summary> /// <param name="attributeList">Array of attributes</param> /// <param name="type">Effect type enumeration</param> /// <returns>true if attribute effect in group == type</returns> public bool AttributeGroupIs(Collection <Variable> attributeList, ItemAttributesEffectType type) { Variable variable = (Variable)attributeList[0]; ItemAttributesData data = this.GetAttributeData(variable.Name); if (data == null) { return(false); } return(data.EffectType == type); }
/// <summary> /// Calculates the base order of the attribute /// </summary> /// <param name="effectType">Effect type</param> /// <param name="subOrder">suborder used for grouping same types</param> /// <returns>order value of attribute</returns> private int CalcBaseOrder(ItemAttributesEffectType effectType, int subOrder) { // If it is armor then make sure Defense comes out as 1 // Shield effects still come first at 0 int typeOrder = (int)effectType; if (this.isArmor) { if (effectType == ItemAttributesEffectType.ShieldEffect) { typeOrder = 0; } else if (effectType == ItemAttributesEffectType.Defense) { typeOrder = 1; } else if (typeOrder < ((int)ItemAttributesEffectType.Defense)) { ++typeOrder; } } return(((1000 * (1 + typeOrder)) + subOrder) * 10); }
/// <summary> /// Calculates the base order of the attribute /// </summary> /// <param name="effectType">Effect type</param> /// <param name="subOrder">suborder used for grouping same types</param> /// <returns>order value of attribute</returns> private static int CalcBaseOrder(ItemAttributesEffectType effectType, int subOrder) { int typeOrder = (int)effectType; return(((1000 * (1 + typeOrder)) + subOrder) * 10); }