Esempio n. 1
0
        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();
 }
Esempio n. 3
0
        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;
                }
            }
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
 }