Exemplo n.º 1
0
            /// <summary>
            /// Initializes a new instance of the
            /// <see cref="AbilityPrerequisite"/> class.
            /// </summary>
            /// <param name="value">Requisite string.</param>
            public AbilityPrerequisite(string value)
            {
                // TODO: Determine whether it's logical to be parsing at this level
                var vals = value.Split(' ');

                this.Ability = AbilityScore.GetType(vals[0]);
                this.Minimum = int.Parse(vals[1]);
            }
Exemplo n.º 2
0
        /// <summary>
        /// Loads from yaml.
        /// </summary>
        /// <param name="yaml">Yaml data to load from</param>
        private void LoadFromYaml(YamlNodeWrapper yaml)
        {
            this.skills = new List <Skill>();

            foreach (var skillNode in yaml.Children())
            {
                var skill = new Skill(
                    skillNode.GetString("name"),
                    AbilityScore.GetType(skillNode.GetString("ability")),
                    skillNode.GetString("trained") == "yes",
                    skillNode.GetString("description"));
                this.skills.Add(skill);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Loads from yaml.
        /// </summary>
        /// <param name="yaml">Yaml data to parse.</param>
        private void LoadFromYaml(YamlNodeWrapper yaml)
        {
            this.races = new List <Race>();

            foreach (var raceNode in yaml.Children())
            {
                var race = new Race();
                race.Name = raceNode.GetString("name");
                ShortLog.Debug("Loading Race: " + race.Name);
                race.SizeSetting = (CharacterSize)System.Enum.Parse(typeof(CharacterSize), raceNode.GetString("size"));
                race.HeightRange = DiceStrings.ParseDice(raceNode.GetString("height"));
                race.WeightRange = DiceStrings.ParseDice(raceNode.GetString("weight"));

                var abilities = raceNode.GetNode("abilities");
                foreach (var ability in abilities.ChildrenToDictionary())
                {
                    var modifier = new AbilityScoreAdjustment();
                    modifier.Reason   = "Racial Trait";
                    modifier.Modifier = int.Parse(ability.Value);

                    // Special case is races that can choose
                    if (string.Compare(ability.Key, "choose", true) == 0)
                    {
                        modifier.RacialModifier = true;
                    }
                    else
                    {
                        modifier.AbilityName = AbilityScore.GetType(ability.Key);
                    }

                    race.AbilityModifiers.Add(modifier);
                }

                var traits = raceNode.GetNode("traits");
                foreach (var trait in traits.Children())
                {
                    race.Traits.Add(trait.Value);
                }

                var languages = raceNode.GetNode("languages");
                race.KnownLanguages.Add(languages.GetCommaStringOptional("known"));
                race.AvailableLanguages.Add(languages.GetCommaStringOptional("available"));

                // Get Speed
                race.BaseMovementSpeed = raceNode.GetInteger("basemovementspeed");

                this.races.Add(race);
            }
        }
Exemplo n.º 4
0
 /// <summary>
 /// Gets the score for an ability
 /// </summary>
 /// <returns>The ability score.</returns>
 /// <param name="ability">Ability to lookup.</param>
 public int GetScore(string ability)
 {
     return(this.GetScore(AbilityScore.GetType(ability)));
 }
Exemplo n.º 5
0
 /// <summary>
 /// Gets the ability based on the string name of the ability.
 /// This can trigger exceptions if the ability does not match a type or if the
 /// ability is not found in this container
 /// </summary>
 /// <returns>The ability that was found.</returns>
 /// <param name="ability">Ability to find.</param>
 public AbilityScore GetAbility(string ability)
 {
     return(this.GetAbility(AbilityScore.GetType(ability)));
 }
Exemplo n.º 6
0
 /// <summary>
 /// Gets the modifier for an ability
 /// </summary>
 /// <returns>The modifier score for the ability.</returns>
 /// <param name="ability">Ability to find</param>
 public int GetModifier(string ability)
 {
     return(this.GetModifier(AbilityScore.GetType(ability)));
 }
Exemplo n.º 7
0
 /// <summary>
 /// Sets the score for an ability
 /// </summary>
 /// <param name="ability">Ability score.</param>
 /// <param name="val">Value for the new ability score.</param>
 public void SetScore(string ability, int val)
 {
     this.SetScore(AbilityScore.GetType(ability), val);
 }