Example #1
0
 private int GetCritDamage(IModifier mod)
 {
     return(DamageDice.Select(x => Rng.Roll(x) +
                              Rng.Roll(x))       //x2 because crit!
            .Sum() +
            mod.GetCrit());
 }
Example #2
0
        private int GetDamage(IModifier mod)
        {
            int dmgDieResult = DamageDice.Select(x => Rng.Roll(x))
                               .Sum();
            int x = mod.Get();

            return(dmgDieResult + x);
        }
Example #3
0
        public void Test3()
        {
            var damage = new DamageDice(new Die(1, 1), DamageType.Bludgeoning, false);

            var result = damage.RollDamage();

            result.Total.Should().Be(1);
        }
Example #4
0
        // ----- Public Methods --- //
        public Weapon(WeaponType type, AdditionalWeaponPropertiesDTO additionalProperties = null)
        {
            Type                 = type;
            Damage               = new List <DamageDice>();
            Properties           = new List <WeaponProperty>();
            MagicProperties      = new List <string>();
            ExternalDescriptions = new List <string>();

            BasicWeaponSetup(additionalProperties != null ? additionalProperties.IsMagic : false);

            if (additionalProperties != null)
            {
                if (additionalProperties.ReplaceBaseDamageType)
                {
                    var newDamage = new DamageDice(Damage.First().Die, additionalProperties.ReplacementDamageType, additionalProperties.IsMagic);
                    Damage = new List <DamageDice> {
                        newDamage
                    };
                }

                Material      = additionalProperties.Material;
                MagicModifier = additionalProperties.MagicModifier;
                Damage.AddRange(additionalProperties.AdditionalDamage);
                MagicProperties.AddRange(additionalProperties.MagicProperties);
                RequiresAttunement  = additionalProperties.RequiresAttunement;
                AttunementAlignment = additionalProperties.AttunementRequiresMatchingAlignment;
                Name            = additionalProperties.Name;
                NamePostfix     = additionalProperties.NamePostfix;
                ReplaceName     = additionalProperties.ReplaceName;
                IsMagic         = additionalProperties.IsMagic;
                IsSentient      = additionalProperties.IsSentient;
                MagicItemRarity = additionalProperties.MagicItemRarity;
                Alignment       = additionalProperties.Alignment;
                ExternalDescriptions.AddRange(additionalProperties.ExternalDescription);
                Properties.AddRange(additionalProperties.AdditionalProperties);
            }
        }
Example #5
0
 public async Task <int> RollAsync()
 {
     return(await DamageDice.GetTotalRollAsync());
 }