public static PropertyModifierSet CopyFrom(PropertyModifierSet other) { PropertyModifierSet set = new PropertyModifierSet { levelFilter = other.levelFilter }; foreach (PropertyModifier modifier in other.modifiers) { set.modifiers.Add(PropertyModifier.CopyFrom(modifier)); } return(set); }
public static List <PropertyModifier> GetIncreasedModifier(List <PropertyModifierSet> increaseList, int step) { PropertyModifierSet set = null; foreach (PropertyModifierSet set2 in increaseList) { if (((set == null) || (set._levelFilter <= set2._levelFilter)) && (step >= set2._levelFilter)) { set = set2; } } List <PropertyModifier> list = new List <PropertyModifier>(); if (set != null) { foreach (PropertyModifier modifier in set.modifiers) { PropertyModifier item = PropertyModifier.CopyFrom(modifier); item.attributeValue += (step - set._levelFilter) * modifier.attributeIncrease; list.Add(item); } } return(list); }