public void CanHaveDamageResistance() { var dr = new EnergyResistance(5, "-"); basicStats.AddDamageResistance(dr); Assert.Contains(dr, basicStats.EnergyResistance); }
public void EnergyResistanceOverTenThousandIsEqualToImmunity() { var dr = new EnergyResistance(10000, "fire"); var character = CharacterTestTemplates.AverageBob(); character.Defense.AddDamageResistance(dr); AssertCharacter.IsImmuneTo("fire", character); }
public void Initialize(ComponentContainer components) { drCold = new EnergyResistance(5, "cold"); drAcid = new EnergyResistance(5, "acid"); var defense = components.Get <DefenseStats>(); defense.AddDamageResistance(drCold); defense.AddDamageResistance(drAcid); }
public void Initialize(ComponentContainer components) { sorcerer = components.Get <ClassLevel>(); var elementType = components.Get <ElementalType>(); resistance = new EnergyResistance(10, elementType.EnergyType); var defense = components.Get <DefenseStats>(); defense.AddDamageResistance(resistance); }
public void Initialize(ComponentContainer components) { this.sourceLevels = components.Get <ClassLevel>(); var energyType = energyTypes.ChooseOne(); damageResistance = new EnergyResistance(energyType, CalculateResistance); var defense = components.Get <DefenseStats>(); defense.AddDamageResistance(damageResistance); }
public void EnergyResistanceCanLoadFromAConfigurationFile() { var yaml = @"--- damage-type: acid base-value: 5"; var res = new EnergyResistance(yaml.ParseYaml()); Assert.Equal("Energy Resistance (acid)", res.Name); Assert.Equal("acid", res.DamageType); Assert.Equal(5, res.TotalValue); }
public void CanBeMarkedAsImmunity() { var dr = new EnergyResistance(5, "fire"); dr.SetToImmunity(); var character = CharacterTestTemplates.AverageBob(); character.Defense.AddDamageResistance(dr); AssertCharacter.IsImmuneTo("fire", character); Assert.Empty(character.Defense.EnergyResistance); }
public void Initialize(ComponentContainer components) { var level = components.Get <ClassLevel>(); poisonResistance = new ConditionalStatModifier(new DelegateStatModifier("saves", "bonus", () => { return(level.Level >= 9 ? 4 : 2); }), "poison"); damageResistance = new EnergyResistance(5, "electricity"); var defense = components.Get <DefenseStats>(); defense.FortitudeSave.AddModifier(poisonResistance); defense.ReflexSave.AddModifier(poisonResistance); defense.WillSave.AddModifier(poisonResistance); defense.AddDamageResistance(damageResistance); }
public void Initialize(ComponentContainer components) { sorcererLevels = components.Get <ClassLevel>(); coldResistance = new EnergyResistance(5, "cold"); nonLethal = new DamageReduction("- vs. nonlethal", 0); nonLethal.AddModifier(new DelegateStatModifier( nonLethal.Name, "level-up", () => { return(sorcererLevels.Level >= 9 ? 10 : 5); } )); components.Add(coldResistance); components.Add(nonLethal); }
public void EnergyResistanceCanBeCalculated() { var energyType = new EnergyType(); energyType.Name = "Fire"; var dr = new EnergyResistance( energyType, () => { return(6 * 10); } ); Assert.Equal("Fire", dr.DamageType); Assert.Equal(60, dr.Amount); Assert.Equal("Fire 60", dr.DisplayString()); }
public void Initialize(ComponentContainer components) { var defense = components.Get <DefenseStats>(); var drElectricity = new EnergyResistance(10, "electricity"); var drFire = new EnergyResistance(10, "fire"); defense.AddDamageResistance(drElectricity); defense.AddDamageResistance(drFire); defense.AddImmunity("acid"); defense.AddImmunity("cold"); defense.AddImmunity("petrification"); var poisonResistance = new ConditionalStatModifier(new ValueStatModifier("saves", 4, "bonus"), "poison"); defense.FortitudeSave.AddModifier(poisonResistance); defense.ReflexSave.AddModifier(poisonResistance); defense.WillSave.AddModifier(poisonResistance); }
public void Initialize(ComponentContainer components) { sorcererLevels = components.Get <ClassLevel>(); fireResistance = new EnergyResistance(5, "fire"); components.Get <DefenseStats>().AddDamageResistance(fireResistance); saveModifier = new ConditionalStatModifier ( new DelegateStatModifier("Saves", "bonus", () => { return(sorcererLevels.Level >= 9 ? 4 : 2); } ), "poison" ); var defense = components.Get <DefenseStats>(); defense.FortitudeSave.AddModifier(saveModifier); defense.ReflexSave.AddModifier(saveModifier); defense.WillSave.AddModifier(saveModifier); }
public void Initialize(ComponentContainer components) { var dragon = components.Get <IDraconicBloodline>(); var energyType = dragon.DragonType.EnergyType; damageResistance = new EnergyResistance(5, energyType); var defense = components.Get <DefenseStats>(); defense.AddDamageResistance(damageResistance); sorcererLevels = components.Get <ClassLevel>(); naturalArmor = new DelegateStatModifier( StatNames.ArmorClass, "natural", GetNaturalArmorBonus ); components.ApplyStatModifier(naturalArmor); }