public XElement ToXmlElement() { var activeRoot = new XElement("Skill", new XAttribute("Type", GetType().FullName), Information.ToXmlElement()); activeRoot.Add(new XElement("Auxiliary", AuxiliaryPassiveSkills.Select(passiveSkill => passiveSkill.ToXmlElement()))); return(activeRoot); }
private double AdditionalValueFromPassive <T>(double baseValue, Func <T, double> valueApplyingFunction) { double additionalValue = 0.0; if (AuxiliaryPassiveSkills != null) { foreach (var passiveSkill in AuxiliaryPassiveSkills.OfType <T>() .Where(passiveSkill => (passiveSkill as PassiveSkill).Information.AcquisitionLevel > 0)) { additionalValue += (valueApplyingFunction(passiveSkill) - baseValue); } } return(additionalValue); }