public void LoadAbilityScores(XElement el, ref CharacterSheetData csd) { IEnumerable <XElement> nodes = el.Descendants(); foreach (XElement xe in nodes) { switch (xe.Name.LocalName) { case "Strength": csd.Strength.BaseAbilityScoreValue = (int)xe; break; case "Dexterity": csd.Dexterity.BaseAbilityScoreValue = (int)xe; break; case "Constitution": csd.Constitution.BaseAbilityScoreValue = (int)xe; break; case "Intelligence": csd.Intelligence.BaseAbilityScoreValue = (int)xe; break; case "Wisdom": csd.Wisdom.BaseAbilityScoreValue = (int)xe; break; case "Charisma": csd.Charisma.BaseAbilityScoreValue = (int)xe; break; } } return; }
public CharacterSheetPresenter() { DCache = new DataCache(); XManager = new XMLManager(); CharSheetData = new CharacterSheetData(); LoadModificationSources(); ApplyModifications(); }
public void LoadCharSkills(XElement el, ref CharacterSheetData csd) { IEnumerable <XElement> nodes = el.Descendants(); foreach (XElement xe in nodes) { CharacterSkill skill = csd.Skills.First(s => s.SkillName == xe.Name.LocalName); if (skill != null) { int i = csd.Skills.IndexOf(skill); csd.Skills[i].BaseSkillValue = (int)xe; } } }
public CharacterSheetData SaveCharacterSheet(CharacterSheetData csd, string inputUrl) { try { XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; using (XmlWriter xmlWriter = XmlWriter.Create(inputUrl, settings)) { xmlWriter.WriteStartDocument(); xmlWriter.WriteStartElement("Character"); xmlWriter.WriteElementString("Level", csd.Level.ToString()); xmlWriter.WriteElementString("CharacterName", csd.CharacterName); xmlWriter.WriteElementString("PlayerName", csd.PlayerName); xmlWriter.WriteElementString("Race", csd.Race); xmlWriter.WriteElementString("Size", csd.Size); xmlWriter.WriteElementString("Gender", csd.Gender); xmlWriter.WriteElementString("Age", csd.Age.ToString()); xmlWriter.WriteElementString("Height", csd.Height.ToString()); xmlWriter.WriteElementString("Weight", csd.Weight.ToString()); xmlWriter.WriteElementString("Alignment", csd.Alignment); xmlWriter.WriteElementString("Deity", csd.Deity); xmlWriter.WriteElementString("Occupation", csd.Occupation); xmlWriter.WriteStartElement("Languages"); foreach (string lang in csd.LanguagesList) { xmlWriter.WriteElementString("Language", lang); } xmlWriter.WriteEndElement(); //Languages xmlWriter.WriteStartElement("Biography"); foreach (Paragraph paragraph in csd.Biography) { foreach (Run r in paragraph.Inlines) { xmlWriter.WriteElementString("p", r.Text); } } xmlWriter.WriteEndElement(); //Biography xmlWriter.WriteStartElement("BaseAbilityScores"); xmlWriter.WriteElementString("Strength", csd.Strength.BaseAbilityScoreValue.ToString()); xmlWriter.WriteElementString("Dexterity", csd.Dexterity.BaseAbilityScoreValue.ToString()); xmlWriter.WriteElementString("Constitution", csd.Constitution.BaseAbilityScoreValue.ToString()); xmlWriter.WriteElementString("Intelligence", csd.Intelligence.BaseAbilityScoreValue.ToString()); xmlWriter.WriteElementString("Wisdom", csd.Wisdom.BaseAbilityScoreValue.ToString()); xmlWriter.WriteElementString("Charisma", csd.Charisma.BaseAbilityScoreValue.ToString()); xmlWriter.WriteEndElement(); //BaseAbilityScores xmlWriter.WriteStartElement("Skills"); foreach (CharacterSkill cs in csd.Skills) { if (cs.BaseSkillValue > 0) { xmlWriter.WriteElementString(cs.SkillName, cs.BaseSkillValue.ToString()); } } xmlWriter.WriteEndElement(); //Skills xmlWriter.WriteStartElement("Traits"); foreach (RacialTrait rt in csd.Traits) { xmlWriter.WriteElementString("Trait", rt.Name); } xmlWriter.WriteEndElement(); //Traits xmlWriter.WriteStartElement("Feats"); foreach (CharacterFeat cf in csd.Feats) { xmlWriter.WriteElementString("Feat", cf.Name); } ; xmlWriter.WriteEndElement(); //Feats xmlWriter.WriteEndElement(); //Character xmlWriter.WriteEndDocument(); xmlWriter.Close(); } } catch (InvalidOperationException ex) { csd.Error = new Error(ex.ToString()); } catch (EncoderFallbackException ex) { csd.Error = new Error(ex.ToString()); } catch (ArgumentException ex) { csd.Error = new Error(ex.ToString()); } return(csd); }
public void LoadCharacterSheet(string inputUrl, ref CharacterSheetData charSheetData) { try { using (XmlReader reader = XmlReader.Create(inputUrl)) { reader.MoveToContent(); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { XElement xe = XNode.ReadFrom(reader) as XElement; switch (xe.Name.LocalName) { case "Level": charSheetData.Level = (int)xe; break; case "CharacterName": charSheetData.CharacterName = (string)xe; break; case "PlayerName": charSheetData.PlayerName = (string)xe; break; case "Race": charSheetData.Race = (string)xe; break; case "Size": charSheetData.Size = (string)xe; break; case "Gender": charSheetData.Gender = (string)xe; break; case "Age": charSheetData.Age = (int)xe; break; case "Height": charSheetData.Height = (int)xe; break; case "Weight": charSheetData.Weight = (int)xe; break; case "Alignment": charSheetData.Alignment = (string)xe; break; case "Deity": charSheetData.Deity = (string)xe; break; case "Occupation": charSheetData.Occupation = (string)xe; break; case "Languages": string lang = ""; charSheetData.LanguagesList = LoadLanguages(xe, ref lang); charSheetData.Languages = lang; break; case "Biography": charSheetData.Biography = TextBlocktoParagraphs(xe); break; case "BaseAbilityScores": LoadAbilityScores(xe, ref charSheetData); break; case "Skills": LoadCharSkills(xe, ref charSheetData); break; } } } } } catch (Exception ex) { charSheetData.Error = new Error(ex.Message); } }
public void SaveCharacterSheet(string inputUrl) { CharSheetData = XManager.SaveCharacterSheet(CharSheetData, inputUrl); }