示例#1
0
        /// <summary>
        /// Parses the yaml.
        /// </summary>
        /// <returns>The yaml.</returns>
        /// <param name="modifierNode">Modifier node.</param>
        /// <param name="source">Source of the modifier.</param>
        public static IList <BasicStatModifier> ParseYaml(YamlNodeWrapper modifierNode, string source)
        {
            IList <BasicStatModifier> modifiers = new List <BasicStatModifier>();

            foreach (var mod in modifierNode.Children())
            {
                var statName  = mod.GetString("stat");
                var amount    = mod.GetInteger("modifier");
                var type      = mod.GetString("type");
                var condition = mod.GetStringOptional("condition");
                BasicStatModifier modifier;

                if (!string.IsNullOrEmpty(condition))
                {
                    modifier = new ConditionalStatModifier(
                        condition,
                        statName,
                        amount,
                        type,
                        source);
                }
                else
                {
                    modifier = new BasicStatModifier(
                        statName,
                        amount,
                        type,
                        source);
                }

                modifiers.Add(modifier);
            }

            return(modifiers);
        }
示例#2
0
        /// <summary>
        /// Setups the skill modifiers.
        /// </summary>
        private void SetupSkillModifiers()
        {
            this.StealthAdj = new BasicStatModifier("Stealth", 0, "size", "Size");
            this.FlyAdj     = new BasicStatModifier("Fly", 0, "size", "Size");

            this.Modifiers = new List <BasicStatModifier>();
            this.Modifiers.Add(this.StealthAdj);
            this.Modifiers.Add(this.FlyAdj);
        }
示例#3
0
        public void ModificationToAnAdjustmentAreReflectedInTotalScore()
        {
            var skill     = new Skill("Chew", AbilityScoreTypes.Strength, false);
            var ability   = new AbilityScore(AbilityScoreTypes.Strength, 10);
            var charSkill = new CharacterSkill(skill, ability, false);
            var adj       = new BasicStatModifier("Chew", 0, "Teeth", "Chew");

            charSkill.AddModifier(adj);
            Assert.AreEqual(0, charSkill.Score());
            adj.Modifier = 5;
            Assert.AreEqual(5, charSkill.Score());
        }
示例#4
0
 // Use this for initialization
 void Start()
 {
     myUnitModifier = GetComponentInParent <UnitTypes>().myUnit.GetComponent <BasicStatModifier>();
     if (myUnitModifier.favouriteEnemy != UnitType.Null)
     {
         Visual.GetComponent <Image>().sprite = Sprites[(int)myUnitModifier.favouriteEnemy];
         GetComponent <MouseHoverInfoCursor>().TooltipName = myUnitModifier.favouriteEnemy.ToString();
         GetComponent <MouseHoverInfoCursor>().TooltipText = "This unit is stronger against " + myUnitModifier.favouriteEnemy.ToString();
     }
     AttackText.text  = myUnitModifier.AttackModifierVersusUnitType.ToString();
     DefenceText.text = myUnitModifier.DefenceModifierVersusUnitType.ToString();
 }
示例#5
0
        public void SkillsCanHaveAdjustmentsFromTraitsOrFeats()
        {
            var adjust = new BasicStatModifier(
                "Fly",
                2,
                "Bonus",
                "Acrobatic Feat"
                );
            var flySkill  = new Skill("Fly", AbilityScoreTypes.Dexterity, false);
            var charSkill = new CharacterSkill(flySkill, new AbilityScore(AbilityScoreTypes.Dexterity, 10), false);

            charSkill.AddModifier(adjust);

            Assert.AreEqual(2, charSkill.Score());
        }
示例#6
0
 /// <summary>
 /// Adds a stat modifier to the skill.
 /// </summary>
 /// <param name="modifier">Modifier for the skill.</param>
 public void AddModifier(BasicStatModifier modifier)
 {
     this.skillStats.AddModifier(modifier);
 }