示例#1
0
        public void AddsStatisticComponentsForScoreAndModifierToComponentBag()
        {
            var strength  = new AbilityScore(AbilityScoreTypes.Strength, 16);
            var container = new ComponentContainer();

            container.Add(strength);
            var score    = container.FindStat <IValueStatistic>("strength");
            var modifier = container.FindStat <IValueStatistic>("strength-modifier");

            Assert.Equal(16, score.TotalValue);
            Assert.Equal(3, modifier.TotalValue);
        }
示例#2
0
        public void Execute(ComponentContainer components)
        {
            var cmd    = components.FindStat <IValueStatistic>(StatNames.CMB);
            var strMod = cmd.Modifiers.OfType <StatisticStatModifier>().FirstOrDefault(x => x.TrackingStatName.EqualsIgnoreCase("strength-modifier"));

            if (strMod != null)
            {
                cmd.RemoveModifier(strMod);
            }

            var dexMod = new StatisticStatModifier(cmd.Name, components.FindStat <IValueStatistic>("dexterity-modifier"));

            cmd.AddModifier(dexMod);
        }
示例#3
0
        public void CanSerializeOutTheEntitiesInTheContainerAndReloadThem()
        {
            var container = new ComponentContainer();

            container.Add(new CustomStatType("Foo"));
            container.Add(new CustomStatType("Bar"));
            var storage = new YamlObjectStore();

            storage.Serialize(container);
            var newContainer = new ComponentContainer();

            storage.Deserialize(newContainer);
            Assert.NotNull(newContainer.FindStat("Foo"));
            Assert.NotNull(newContainer.FindStat("Bar"));
        }
示例#4
0
        public void IfPropertyHasAddToContainerAttributeThenMakeSureThisValueIsAdded()
        {
            var container = new ComponentContainer();
            var add       = new AddToContainerTest();

            container.Add(add);
            Assert.NotNull(container.FindStat("Add Me"));
        }
示例#5
0
 public void Initialize(ComponentContainer components)
 {
     monkLevels     = components.Get <ClassLevel>();
     wisdom         = components.FindStat <AbilityScore>(StatNames.Wisdom);
     inventory      = components.Get <Inventory>();
     monkACModifier = new DelegateStatModifier(StatNames.ArmorClass, "bonus", Modifier);
     components.ApplyStatModifier(monkACModifier);
 }
示例#6
0
 public void Initialize(ComponentContainer components)
 {
     if (statistic == null)
     {
         statistic = components.FindStat <IValueStatistic>(TrackingStatName);
         if (statistic == null)
         {
             throw new StatisticNotFoundException(TrackingStatName);
         }
     }
 }
示例#7
0
        public bool IsQualified(ComponentContainer components)
        {
            var stat = components.FindStat <CharacterSkill>(SkillName);

            if (stat == null)
            {
                throw new StatisticNotFoundException(SkillName);
            }

            return(stat.Ranks >= Minimum);
        }
示例#8
0
 public void Initialize(ComponentContainer components)
 {
     baseAttackBonus = components.FindStat <IValueStatistic>(StatNames.BaseAttackBonus);
     monkLevels      = components.Get <ClassLevel>();
     modifier        = new DelegateStatModifier(
         StatNames.CMB,
         "Monk",
         Modifier
         );
     components.ApplyStatModifier(modifier);
 }
示例#9
0
 public bool IsQualified(ComponentContainer components)
 {
     return(components.FindStat <IValueStatistic>(StatNames.BaseAttackBonus).TotalValue >= AttackBonus);
 }
示例#10
0
 public void Initialize(ComponentContainer components)
 {
     wisdomModifier = components.FindStat <IValueStatistic>("wisdom-modifier");
 }
示例#11
0
        public bool IsQualified(ComponentContainer components)
        {
            var ability = components.FindStat <AbilityScore>(this.Ability.ToString());

            return(ability.TotalValue >= this.Minimum);
        }
示例#12
0
 public void Initialize(ComponentContainer components)
 {
     usesPerDay = components.FindStat <IValueStatistic>(this.UsesPerDayStatName());
 }
示例#13
0
 public void Initialize(ComponentContainer container)
 {
     _hitDice = container.FindStat <IDiceStatistic>("hit dice");
 }
示例#14
0
 public void Initialize(ComponentContainer components)
 {
     _baseStatistic       = components.FindStat <IValueStatistic>(BaseStatisticName);
     _differenceStatistic = components.FindStat <IValueStatistic>(DifferenceStatisticName);
 }