Example #1
0
        public override SkillEffects ComputeEffects(SkillForecast forecast, IRandomizer randomizer)
        {
            var chances = forecast.Chances;
            var effects = new List <IEffect> {
                DamageUtils.GetFinalizedPhysicalDamage(forecast.Hit.BaseDamage, chances, randomizer)
            };

            return(new SkillEffects(effects));
        }
Example #2
0
        public override SkillEffects ComputeEffects(SkillForecast forecast, IRandomizer randomizer)
        {
            var defender    = forecast.Defender;
            var parryChance = defender.GetStat(StatType.ProjectileParryChance);
            var didParry    = RandomUtils.DidEventHappen(parryChance.Value, randomizer);

            if (didParry)
            {
                return(new SkillEffects(
                           new List <IEffect> {
                    new Miss(MissReason.Parry)
                }
                           ));
            }

            var baseDamage = forecast.Hit.BaseDamage;
            var hit        = DamageUtils.GetFinalizedPhysicalDamage(baseDamage, forecast.Chances, randomizer);

            return(new SkillEffects(new List <IEffect>()
            {
                hit
            }));
        }