Esempio n. 1
0
        private Save GetFeatSavingThrowBonuses(Save save, IEnumerable <Feat> feats, string saveName, Dictionary <string, Ability> abilities)
        {
            var saveFeatNames = collectionsSelector.SelectFrom(TableNameConstants.Collection.FeatGroups, saveName);
            var saveFeats     = feats.Where(f => saveFeatNames.Contains(f.Name));

            foreach (var feat in saveFeats)
            {
                save.AddBonus(feat.Power);
            }

            if (feats.Any(f => f.Name == FeatConstants.SpecialQualities.UnearthlyGrace))
            {
                save.AddBonus(abilities[AbilityConstants.Charisma].Modifier);
            }

            return(save);
        }
Esempio n. 2
0
        private Save GetRacialSavingThrowBonuses(Save save, string creatureName, CreatureType creatureType, string saveName)
        {
            var creatureBonuses     = bonusSelector.SelectFor(TableNameConstants.TypeAndAmount.SaveBonuses, creatureName);
            var creatureTypeBonuses = bonusSelector.SelectFor(TableNameConstants.TypeAndAmount.SaveBonuses, creatureType.Name);

            var bonuses = creatureBonuses.Union(creatureTypeBonuses);

            foreach (var subtype in creatureType.SubTypes)
            {
                var subtypeBonuses = bonusSelector.SelectFor(TableNameConstants.TypeAndAmount.SaveBonuses, subtype);
                bonuses = bonuses.Union(subtypeBonuses);
            }

            foreach (var bonus in bonuses)
            {
                if (bonus.Target == GroupConstants.All || bonus.Target == saveName)
                {
                    save.AddBonus(bonus.Bonus, bonus.Condition);
                }
            }

            return(save);
        }
Esempio n. 3
0
 void Bonus()
 {
     Save.AddBonus();
 }
Esempio n. 4
0
        public void OneBonus(int value)
        {
            save.AddBonus(value);

            Assert.That(save.Bonuses, Is.Not.Empty);
            Assert.That(save.Bonuses.Count(), Is.EqualTo(1));

            var bonus = save.Bonuses.Single();

            Assert.That(bonus.Condition, Is.Empty);
            Assert.That(bonus.IsConditional, Is.False);
            Assert.That(bonus.Value, Is.EqualTo(value));

            Assert.That(save.Bonus, Is.EqualTo(value));
            Assert.That(save.IsConditional, Is.False);
        }