public override void ReadAttributesXML(XmlNode xmlNode) { bool readBase = false; bool readModified = false; try { foreach (XmlNode childNode in xmlNode.ChildNodes) { if (childNode.Name == "BaseAttributes") { BaseAttributes.ReadXML(childNode.ChildNodes[0]); readBase = true; } else if (childNode.Name == "ModifiedAttributes") { ModifiedAttributes.ReadXML(childNode.ChildNodes[0]); readModified = true; } } } catch (XmlException e) { MessageBox.Show(e.ToString()); } if (readBase && !readModified) { ModifiedAttributes = new CreatureAttributes(BaseAttributes); } }
public override void WriteAttributesXML(XmlWriter xmlWriter) { xmlWriter.WriteStartElement("BaseAttributes"); BaseAttributes.WriteXML(xmlWriter); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("ModifiedAttributes"); ModifiedAttributes.WriteXML(xmlWriter); xmlWriter.WriteEndElement(); }
public new CreatureAttributes GetEffectiveAttributes() { CreatureAttributes effectiveAttributes = ModifiedAttributes.Clone(); foreach (Effect.Effect effect in Effects) { if (!effect.PerTurn) { effect.ApplyTo(effectiveAttributes, BaseAttributes); } } return(effectiveAttributes); }
public void ModifyAbilityScore(Types.Ability ability, int change) { ModifiedAttributes.ModifyAbilityScore(ability, change); NotifyPropertyChanged(Methods.GetAbilityString(ability)); }