private IReadOnlyList <IIntermediateModifier> CollectionToList(GivenStatCollection collection)
 {
     AddAilmentSourceDamageTypeModifiers(collection);
     AddDamageWithNonCritsModifiers(collection);
     AddDamageWithCritsModifiers(collection);
     return(collection.ToList());
 }
 private void AddForSkillAndAilments(GivenStatCollection collection,
                                     IFormBuilder form, IDamageRelatedStatBuilder stat, IDamageRelatedStatBuilder valueStat)
 {
     collection.Add(form, stat.WithSkills, valueStat.WithSkills.Value);
     foreach (var ailment in Enums.GetValues <Ailment>())
     {
         var ailmentBuilder = Ailment.From(ailment);
         collection.Add(form, stat.With(ailmentBuilder), valueStat.With(ailmentBuilder).Value);
     }
 }
 private GivenStatCollection Expand(GivenStatCollection coll)
 {
     // charge configuration
     foreach (var chargeType in Enums.GetValues <ChargeType>())
     {
         var chargeStat = Charge.From(chargeType);
         coll.Add(TotalOverride, chargeStat.Amount, chargeStat.Amount.Maximum.Value,
                  Condition.Unique($"{chargeType}.Charge.Amount.SetToMaximum"));
     }
     return(coll);
 }
 private void AddAilmentSourceDamageTypeModifiers(GivenStatCollection collection)
 {
     foreach (var ailment in Enums.GetValues <Ailment>())
     {
         var ailmentBuilder = Ailment.From(ailment);
         foreach (var damageType in Enums.GetValues <DamageType>())
         {
             collection.Add(TotalOverride, _stat.Damage(damageType).With(ailmentBuilder), 0,
                            ailmentBuilder.Source(DamageTypeBuilders.From(damageType)).IsSet.Not);
         }
     }
 }
        private void AddDamageWithModifiers(GivenStatCollection collection,
                                            IDamageRelatedStatBuilder damage, Func <DamageType, IDamageRelatedStatBuilder> damageForType)
        {
            var form = BaseAdd;

            foreach (var type in Enums.GetValues <DamageType>().Except(DamageType.RandomElement))
            {
                var forType = damageForType(type);
                AddForSkillAndAilments(collection, form, damage.With(AttackDamageHand.MainHand),
                                       forType.With(AttackDamageHand.MainHand));
                AddForSkillAndAilments(collection, form, damage.With(AttackDamageHand.OffHand),
                                       forType.With(AttackDamageHand.OffHand));
                AddForSkillAndAilments(collection, form, damage.With(DamageSource.Spell),
                                       forType.With(DamageSource.Spell));
                AddForSkillAndAilments(collection, form, damage.With(DamageSource.Secondary),
                                       forType.With(DamageSource.Secondary));
                collection.Add(form, damage.WithSkills(DamageSource.OverTime),
                               forType.WithSkills(DamageSource.OverTime).Value);
            }
        }
 private void AddDamageWithCritsModifiers(GivenStatCollection collection)
 {
     AddDamageWithModifiers(collection, _stat.DamageWithCrits(), _stat.DamageWithCrits);
 }
Beispiel #7
0
 public void SetUp()
 {
     _sut = new GivenStatCollection();
 }
Beispiel #8
0
 public void SetUp()
 {
     _valueFactory = new Mock <IValueBuilders>();
     _sut          = new GivenStatCollection(new ModifierBuilderStub(), _valueFactory.Object);
 }