Ejemplo n.º 1
0
        public static void LoadCharacter(XDocument saveFile, Character chr)
        {
            var cs = saveFile.Root.Element("CharacterSheet");

            //Character Details
            var details = cs.Element("Details");
            chr.Name = details.Element("name").Value.Trim();
            chr.Level = int.Parse(details.Element("Level").Value.Trim());

            var levelRule = saveFile.Root.Element("Level").Element("RulesElement");
            chr.Race = levelRule.Elements("RulesElement").First(re => re.Attribute("type").Value == "Race").Attribute("name").Value;
            chr.Class = levelRule.Elements("RulesElement").First(re => re.Attribute("type").Value == "Class").Attribute("name").Value;

            //Ability Scores
            var stats = cs.Element("StatBlock");
            chr.Strength = stats.GetStatValue("Strength");
            chr.Constitution = stats.GetStatValue("Constitution");
            chr.Dexterity = stats.GetStatValue("Dexterity");
            chr.Intellect = stats.GetStatValue("Intelligence");
            chr.Wisdom = stats.GetStatValue("Wisdom");
            chr.Charisma = stats.GetStatValue("Charisma");

            //Defense Scores
            chr.AC = stats.GetStatValue("AC");
            chr.Fortitude = stats.GetStatValue("Fortitude");
            chr.Reflex = stats.GetStatValue("Reflex");
            chr.Will = stats.GetStatValue("Will");

            //Health
            chr.HPMax = stats.GetStatValue("Hit Points");
            chr.SurgesDaily = stats.GetStatValue("Healing Surges");
            chr.ActionPoints = stats.GetStatValue("_BaseActionPoints");

            //Skill Scores
            chr.Acrobatics = stats.GetStatValue("Acrobatics");
            chr.Arcana = stats.GetStatValue("Arcana");
            chr.Athletics = stats.GetStatValue("Athletics");
            chr.Bluff = stats.GetStatValue("Bluff");
            chr.Diplomacy = stats.GetStatValue("Diplomacy");
            chr.Dungeoneering = stats.GetStatValue("Dungeoneering");
            chr.Endurance = stats.GetStatValue("Endurance");
            chr.Heal = stats.GetStatValue("Heal");
            chr.History = stats.GetStatValue("History");
            chr.Insight = stats.GetStatValue("Insight");
            chr.Intimidate = stats.GetStatValue("Intimidate");
            chr.Nature = stats.GetStatValue("Nature");
            chr.Perception = stats.GetStatValue("Perception");
            chr.Religion = stats.GetStatValue("Religion");
            chr.Stealth = stats.GetStatValue("Stealth");
            chr.Streetwise = stats.GetStatValue("Streetwise");
            chr.Thievery = stats.GetStatValue("Thievery");

            //Powers
            var powers = cs.Element("PowerStats").Elements("Power").Select(p => ParsePower(p));
            var existingPowers = chr.Powers.ToList();
            var updatedPowers = powers.Where(p => existingPowers.Any(ep => ep.Name == p.Name));
            var newPowers = powers.Where(p => !existingPowers.Any(ep => ep.Name == p.Name));
            var removedPowers = existingPowers.Where(ep => !powers.Any(p => p.Name == ep.Name));
            foreach (var updatedPower in updatedPowers) {
                var power = chr.Powers.Single(p => p.Name == updatedPower.Name);
                power.Cooldown = updatedPower.Cooldown;
                power.ActionType = updatedPower.ActionType;
                power.Attack = updatedPower.Attack;
                power.Damage = updatedPower.Damage;
            }
            chr.Powers.AddRange(newPowers);
            foreach (var removedPower in removedPowers)
                chr.Powers.Remove(removedPower);
        }
Ejemplo n.º 2
0
 public static Character Parse(XDocument saveFile)
 {
     var character = new Character();
     LoadCharacter(saveFile, character);
     return character;
 }
Ejemplo n.º 3
0
 public ActionResult Create(Character character)
 {
     _db.Characters.InsertOnSubmit(character);
     _db.SubmitChanges();
     return RedirectToAction("Details", new { id = character.Id });
 }
Ejemplo n.º 4
0
 partial void DeleteCharacter(Character instance);
Ejemplo n.º 5
0
 partial void UpdateCharacter(Character instance);
Ejemplo n.º 6
0
 partial void InsertCharacter(Character instance);