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); }
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); }
void Bonus() { Save.AddBonus(); }
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); }